c++相关内容

遍历结构和类成员

是否可以在 C++ 中遍历 Struct 或 Class 以找到其所有成员?例如,如果我有 struct a 和 class b: struct a{一个;国际b;国际 c;}b类{民众:一个;国际b;私人的:国际 c;} 是否可以循环它们说得到一个打印语句,说“结构 a 具有名为 a、b、c 的 int"或“b 类具有名为 a、b、c 的 int" 解决方案 有几种方法可以做到这一点 ..
发布时间:2021-12-09 21:07:09 C/C++开发

C++11 允许非静态和非常量成员的类内初始化.发生了什么变化?

在 C++11 之前,我们只能对整型或枚举类型的静态常量成员执行类内初始化.Stroustrup 在他的 C++ FAQ 中讨论了这个问题,给出了以下例子: class Y {const int c3 = 7;//错误:不是静态的静态 int c4 = 7;//错误:不是常量静态常量浮点 c5 = 7;//错误:不是整数}; 以及以下推理: 那么为什么会存在这些不方便的限制呢?类通常在头 ..
发布时间:2021-12-09 21:01:25 C/C++开发

“this"指针是什么?

我对 C++ 相当陌生,我不明白 this 指针在以下场景中的作用: void do_something_to_a_foo(Foo *foo_instance);void Foo::DoSomething(){do_something_to_a_foo(this);} 我从这里其他人的帖子中获取的. this 指向什么?我糊涂了.函数没有输入,那么this在做什么? 解决方案 t ..
发布时间:2021-12-09 20:59:48 C/C++开发

带有 const 参数和重载的函数

正在试用 stackeroverflow qn 所以它让我思考为什么不重载该函数,我想出了一个稍微不同的代码,但它说该函数不能被重载.我的问题是为什么?或者有其他方法吗? #include 使用 std::cout;类测试{民众:测试(){ }int foo (const int) const;int foo (int );};int主(){测试对象;测试 const obj1;整数变量=0; ..
发布时间:2021-12-09 20:59:01 C/C++开发

类不存在默认构造函数

#include "Includes.h"枚举 BlowfishAlgorithm{欧洲央行,加拿大广播公司,CFB64,OFB64,};河豚类{民众:结构 bf_key_st{无符号长 P[18];无符号长 S[1024];};河豚(河豚算法算法);无效处置();void SetKey(无符号字符数据[]);无符号字符加密(无符号字符缓冲区[]);无符号字符解密(无符号字符缓冲区[]);字符 E ..
发布时间:2021-12-09 20:55:15 C/C++开发

C/C++ 结构与类

在完成我的 C++ 课程后,在我看来,结构/类几乎完全相同,只有一些细微的差异. 我以前从未用 C 编程过;但我知道它有结构.在C中是否可以继承其他结构并设置public/private的修饰符? 如果您可以在常规 C 中执行此操作,为什么我们还需要 C++?什么使类与结构不同? 解决方案 在 C++ 中,结构和类几乎相同;唯一的区别是类中的访问修饰符(用于成员变量、方法和基类 ..
发布时间:2021-12-09 20:52:21 C/C++开发

将类代码分成头文件和 cpp 文件

我很困惑如何将一个简单类的实现和声明代码分离到一个新的头文件和 cpp 文件中.例如,我将如何分离以下类的代码? A2DD 类{私人的:国际 gx;整数;民众:A2DD(int x,int y){gx = x;gy = y;}int getSum(){返回 gx + gy;}}; 解决方案 类声明进入头文件.添加 #ifndef 包含保护很重要.大多数编译器现在还支持 #pragma onc ..
发布时间:2021-12-09 20:50:33 C/C++开发

C++ 类的私有成员和受保护成员之间有什么区别?

C++ 类中的 private 和 protected 成员有什么区别? 我从最佳实践约定中了解到,在类外调用的变量和函数应该设为 private——但是看看我的 MFC 项目,MFC 似乎更喜欢 protected>. 有什么区别,我应该使用哪个? 解决方案 私有成员只能在定义它们的类中访问. 受保护成员可以在定义它们的类中以及从该类继承的类中访问. 编辑:它们的 ..
发布时间:2021-12-09 20:48:49 C/C++开发

C++:空类的对象的大小是多少?

我想知道空类对象的大小.它肯定可以不为 0 字节,因为它应该可以像任何其他对象一样引用和指向它.但是,这样的物体有多大? 我用过这个小程序: #include 使用命名空间标准;类空{};int main(){空e;cerr 我在 Visual C++ 和 Cygwin-g++ 编译器上得到的输出是 1 字节!这让我有点惊讶,因为我期望它是机器字的大小(32 位或 4 字节). 谁 ..
发布时间:2021-12-09 20:48:06 C/C++开发

C++ 中嵌套类型/类的前向声明

我最近陷入了这样的境地: A 类{民众:typedef 结构/类 {…} B;…C::D *someField;}C级{民众:typedef 结构/类 {…} D;…A::B *someField;} 通常你可以声明一个类名: A类; 但是不能前向声明嵌套类型,以下会导致编译错误. class C::D; 有什么想法吗? 解决方案 你做不到,这是 C++ 语言的一个漏洞.您必须 ..
发布时间:2021-12-09 20:47:48 C/C++开发

C++ 文件处理:ios::app 和 ios::ate 之间的区别?

在写入文件时,ios::ate 和 ios:app 之间有什么区别. 在我看来,ios::app 使您能够在文件中移动,而使用 ios::ate 它只能在文件的末尾读/写文件.这是正确的吗? 解决方案 正好相反.当ios::ate 被设置时,初始位置将是文件的末尾,但您可以在此后自由查找.当设置 ios::app 时,所有 输出操作都在文件末尾执行.由于所有写入都隐含地在查找之前,因此无 ..
发布时间:2021-12-09 20:37:29 C/C++开发

我在哪里可以获得文件 libstdc++.so.6.0.15 的副本

我正在尝试解决我的问题“GLIBCXX_3.4.15"未找到,该问题有很好的文档可以解决.但它需要从某处获取文件“libstdc++.so.6.0.15". 大多数解决方案都告诉我从编译我的 c++ 库的位置获取它.但是,我没有编译它,它随我的 Ubuntu 安装一起提供,当我对该文件进行“定位"时找不到它. 所以,我想从某个地方下载它,但我无法在网络上的任何地方找到它.我试图查看 s ..
发布时间:2021-12-09 20:33:08 C/C++开发

C++ 字符串到双重转换

通常,当我用 C++ 编写任何东西并且需要将 char 转换为 int 时,我只需创建一个新的 int 等于字符. 我使用了代码(片段) 字符串字;打开文件 >>单词;双大声笑=字; 我收到错误 Code1.cpp 无法在初始化时将 `std::string' 转换为 `double' 错误究竟是什么意思?第一个词是数字 50.谢谢:) 解决方案 你可以很容易地将 char ..
发布时间:2021-12-09 20:28:08 C/C++开发

将 Unicode UTF-8 文件读入 wstring

如何在 Windows 平台上将 Unicode (UTF-8) 文件读入 wstring(s)? 解决方案 在 C++11 支持下,您可以使用 std::codecvt_utf8 facet 封装了UTF-8编码的字节串与UCS2或UCS4字符串之间的转换,可用于读写UTF-8文件, 文本和二进制. 为了使用facet,您通常会创建区域设置对象 将特定于文化的信息封装为一组共同定义 ..
发布时间:2021-12-09 20:17:45 C/C++开发