c++相关内容

使用默认构造函数调用的网格类不起作用 OpenGL C++

我为 OpenGL 3.3 创建了一个 Mesh 类,当我使用非默认构造函数创建类时,当我创建对象时创建顶点时,它可以正常工作. 但是,我现在想要通过将它们放入向量中来动态创建多个对象,因此我必须添加一个默认构造函数,我使用与其他构造函数相同的函数来设置缓冲区数据......但是它不起作用.据我所知,不是因为它在向量中,而是与构造函数有关,或者与稍后创建缓冲区数据的事实有关.我真的不太确定. ..
发布时间:2021-12-09 21:26:03 C/C++开发

是否在初始化变量之前调用了父类构造函数?

是在初始化变量之前调用父类的构造函数,还是编译器会先初始化类的变量? 例如: class parent {一个;民众:父():a(123){};};班级孩子:公共父母{国际b;民众://问题:父构造函数是否在 init b 之前完成?孩子():b(456),父母(){};} 解决方案 是的,基类在派生类成员和构造函数体执行之前初始化. 12.6.2 初始化基类和成员 [class ..
发布时间:2021-12-09 21:25:51 C/C++开发

混合类和结构

我很清楚class 和 struct 之间的区别,但是我很难权威地说这是否定义明确: //声明 foo(struct)结构 foo;//定义 foo(类)类 foo {};//foo 的实例,又声称是一个结构体!定义好?结构 foo 栏;//像这样混合类和结构至少会扰乱一个编译器(名称被不同地修改)const foo&测试() {返回栏;}int main() {测试();返回0;} 如果这是 ..
发布时间:2021-12-09 21:25:44 C/C++开发

“operator = must be a non-static member"是什么意思?意思?

我正在创建一个双链表,并重载了 operator= 以使列表中的另一个相等: templatevoid operator=(const list& lst){清除();复制(lst);返回;} 但是当我尝试编译时出现此错误: container_def.h(74):错误 C2801:'operator =' 必须是非静态成员 另外,如果有帮助,第 74 行是定义的最后一行,带有“}" ..
发布时间:2021-12-09 21:25:31 C/C++开发

在 C++ 中如何确定对象的大小?

例如,假设我有一个 Temp 类: class Temp{民众:int function1(int foo) { 返回 1;}void function2(int bar) { foobar = bar;}私人的:int foobar;}; 当我创建一个 Temp 类的对象时,我将如何计算它需要多少空间,以及它在内存中的表示方式(例如 | foobar 的 4 个字节| function1 的 ..
发布时间:2021-12-09 21:23:23 C/C++开发

您如何为成员使用非默认构造函数?

我有两个班 class a {民众:a(int i);};b类{民众:b();//这里给我一个错误,因为它试图找到构造函数a::a()一个实例;} 我怎样才能让 aInstance 用 a(int i) 实例化,而不是尝试搜索默认构造函数?基本上,我想从 b 的构造函数中控制 a 的构造函数的调用. 解决方案 你需要在构造函数初始化列表中显式调用a(int): b() : aInst ..
发布时间:2021-12-09 21:20:50 C/C++开发

C++ 类成员的默认值是什么

c++ 中结构成员和类成员的默认值是什么,这些规则有何不同(例如,在类/结构/原语/等之间)?是否存在有关默认值的规则不同的情况? 解决方案 在 C++ 中,结构和类在这方面没有区别.它们都被称为类类型. 类类型的成员在一般情况下没有默认值.为了让一个类成员获得一个确定性的值,它必须被初始化,这可以通过 来完成 成员自身的默认构造函数 封闭类的构造函数初始化列表 为封闭类的对 ..
发布时间:2021-12-09 21:19:48 C/C++开发

您如何将 CreateThread 用于属于类成员的函数?

如何使用 CreateThread() 创建属于类成员的函数的线程? 解决方案 你需要创建一个静态方法作为实际的线程启动函数,并传递一个指向实例的指针作为lpParameterCreateThread 的参数.这将传递给静态方法,该方法可以将其转换为对象指针并调用成员函数. class MyClass{静态 DWORD WINAPI StaticThreadStart(void* Par ..
发布时间:2021-12-09 21:19:41 C/C++开发

c++ 继承类中函数重载的问题

这可能是一个菜鸟问题,抱歉.我最近在尝试处理 C++ 中的一些高级内容、函数重载和继承时遇到了一个奇怪的问题. 我举一个简单的例子,只是为了说明问题; 有两个类,classA 和classB,如下所示; class classA{民众:void func(char[]){};};类类B:公共类A{民众:void func(int){};}; 据我所知 classB 现在应该拥有两个 ..
发布时间:2021-12-09 21:19:30 C/C++开发

如何在 C++ 中创建两个相互用作数据的类?

我希望创建两个类,每个类都包含另一个类类型的对象.我怎样才能做到这一点?如果我不能这样做,是否有解决方法,例如让每个类都包含一个指向其他类类型的指针?谢谢! 这是我所拥有的: 文件:bar.h #ifndef BAR_H#define BAR_H#include "foo.h"类栏{民众:foo getFoo();受保护:foo f;};#万一 文件:foo.h #ifndef ..
发布时间:2021-12-09 21:18:20 C/C++开发

如何检查对象的类型是否是 C++ 中的特定子类?

我正在考虑使用 typeid() 但我不知道如何询问该类型是否是另一个类的子类(顺便说一下,它是抽象的) 解决方案 你真的不应该.如果您的程序需要知道一个对象是什么类,这通常表明存在设计缺陷.看看你是否可以使用虚函数获得你想要的行为.此外,有关您正在尝试执行的操作的更多信息会有所帮助. 我假设你有这样的情况: class Base;A类:公共基础{...};B类:公共基地{...} ..
发布时间:2021-12-09 21:14:44 C/C++开发

C++11 有 C# 风格的属性吗?

在 C# 中,对于带有 getter 和 setter 的字段有一个很好的语法糖.此外,我喜欢允许我编写的自动实现的属性 public Foo foo { get;私人订制;} 在 C++ 中我必须写 私有:福福;民众:Foo getFoo() { 返回 foo;} C++11 中是否有一些这样的概念允许我对此有一些语法糖? 解决方案 在 C++ 中,您可以编写自己的功能.这是使用 ..
发布时间:2021-12-09 21:11:57 C#/.NET

最令人头疼的解析混乱

我正在学习 C++11,我偶然发现了统一初始化程序. 我不明白以下应该显示“最令人烦恼的解析"歧义的代码: #include类定时器{民众:定时器(){}};int main(){自动 dv = 定时器();//什么是 Timer() ?dv 是什么类型?int time_keeper(Timer());//这是一个函数吧?为什么不是参数“Timer (*) ()"?返回0;} 解决方案 ..
发布时间:2021-12-09 21:11:23 C/C++开发

类模板与模板类朋友,这里到底发生了什么?

假设我正在为二叉树创建一个类 BT,并且我有一个描述树元素的类 BE,类似于 template类是 {T *数据;BE *l, *r;民众:...模板好友类BT;};模板BT类{BE T*根;民众:...私人的:...}; 这似乎有效;但是我对下面发生的事情有疑问. 我最初尝试将朋友声明为 template好友类BT; 然而,这里似乎有必要使用 U(或除 T 以外的其他东西),这是为 ..
发布时间:2021-12-09 21:10:32 C/C++开发

使用命名空间标准;在头文件中

所以,我在规范文件中有以下内容 #include #include 使用命名空间标准:类我的东西{私人的:字符串名称;fstream 文件;//其他的东西民众:void setName(string);} 我在实现文件中也有 #include "MyStuff.h"使用命名空间标准;void MyStuff::setName(string name);{姓名 = 姓名} ..
发布时间:2021-12-09 21:09:18 C/C++开发

“this"指针的类型

如标题所述,我想知道'this'指针的类型. 我正在处理一个项目,我观察到 'this' 指针的类型是 "ClassName * const this" 在使用 VC++ 2008 的 Windows 上.好吧,我想知道使 this 指针成为常量指针的需要/要求是什么.谢谢. 解决方案 这个指针的类型是 ClassName * 或者 const ClassName * ,取决于它是否 ..
发布时间:2021-12-09 21:09:08 C/C++开发

如何从指向多态基类的指针复制/创建派生类实例?

我一直在为这种问题苦苦挣扎,所以我决定在这里提问. class Base {虚拟 ~Base();};类派生1:公共基础{...};类派生2:公共基础{...};...//复制*base指针指向的派生类的实例Base* CreateCopy(Base* base); 该方法应该返回一个动态创建的副本,或者至少将对象存储在某些数据结构中的堆栈上,以避免“返回临时地址"问题. 实现上述方法的 ..
发布时间:2021-12-09 21:08:52 C/C++开发

你如何在 C++ 中创建一个静态类?

你如何在 C++ 中创建静态类?我应该能够做这样的事情: cout 但是从示例的外观来看,您只需要在 BitParser 对象上创建一个公共静态方法.像这样: BitParser.h class BitParser{民众:static bool getBitAt(int buffer, int bitIndex);//...很多很棒的东西私人的://禁止创建此对象的实例BitParser() ..
发布时间:2021-12-09 21:07:33 C/C++开发