class相关内容
我遇到以下程式码的问题: ProgrammSettings.h #pragma once static class ProgrammSettings { public: static int fd; }; Settings.cpp #include“ProgrammSettings.h” static bool LoadSett
..
我在标题中的命名空间中定义了一个类,如下所示: #ifndef _c1_ #define _c1_ 命名空间classspace { class Aclass; } class Aclass { // body }; #endif _c1_ 我将此标题添加到main.cpp中,在main()中的一个对象,但它的返回错误 undef
..
我面对着名的“可怕的”钻石情况: A / \ B1 B2 \ / C | D 类 A 具有,说构造函数 A :: A(int i)。我还要禁止默认实例化 A ,因此我声明 A 的默认构造函数为 private 。 类 B1 和 B2 实际上派生自 A ,并有一些构造函数和一个 protected 默认构造函数。 p> B
..
我从主程序调用我的函数时遇到问题。 这些函数已在我的类中。 如何从我的int main()中访问它们? #include #include #include #include #include #include #in
..
这是上一个问题的后续跟进 它真的很复杂,所以我开始一个新的线程,使我的观点更清楚。(Didnt想删除以前的线程,因为其他家伙谁给了有价值的反馈,不要松动的声誉点他们获得了) 更新代码:(符合与工程) #include using std :: cout; class Test { public: Test(){} int foo(con
..
。 这里我在讨论空基本优化, MSalters 发表了这个有趣的评论: p> 没有类可以有 sizeof(Class)== 0,空或不。 但是 我们正在讨论一个空的基类子对象的 大小。 它不需要自己的vtable,也不需要 vtable指针。假设在偏移 0处的vtable指针的公共 布局;这将导致零大小的 基类子对象与派生类共享其 vtable指针。 没问题:这些应
..
假设我有任何类或结构。没有虚函数或任何东西,只是一些自定义构造函数,以及一些指针,需要在析构函数中清除。 使用memcpy会有任何不利影响, memmove这个结构?删除移动的结构会导致问题吗? 解决方案 在一般情况下,是的,会有问题。 memcpy 和 memmove 都是按位操作,没有进一步的语义。这可能不足以移动对象 * ,并且显然不足以复制。 在复制的情况下,会破坏,因
..
在我的代码中,我有一组对象: class Sphere {... class Plane {... ... 我需要使用它们的集合它们将具有不同类型)在向量中。如何将不同类的对象添加到向量? 解决方案 球体和平面需要一个共同的基本类型,或者你的向量需要由 void * 的组成。 通用基本类型(更好): class Shape {...
..
我对C ++相当陌生,我不明白在下面的情况下这个指针是什么: void do_something_to_a_foo(Foo * foo_instance); void Foo :: DoSomething() { do_something_to_a_foo(this); } 我从这里的其他人的讯息中抓到了。 指向什么?我很困惑。该函数没有输
..
我正在学习C ++ 11,我偶然发现了统一的初始化器。 我不明白下面的代码应该显示“最烦琐的解析”歧义: #include class Timer { public: Timer(){} }; int main() { auto dv = Timer(); //什么是Timer()?什么类型是dv? int time_
..
我会感谢任何帮助,因为C ++不是我的主要语言。 我有一个模板类,在多个库中派生。我试图找出一种方法来唯一地分配一个id int到每个派生类。我需要能够通过静态方法,即 template class Foo { public: static int s_id() { // DERIVED的返回ID是唯一的 } // ... }
..
我最近刚刚学习了C ++中的 friend class 概念(我已经google了一下,但这回答让我笑了,直到我记得最重要的部分),我正试图将它并入我正在工作的项目。简单的问题最后被挑出来,但一般来说,我对工作代码中的完全缺乏前进声明感到困惑。 我的所有类通过(子)文件夹分隔,并且每个类都分成一个单独的.h 和 .cpp 文件,但这应该足以让你感觉到依赖性: // FE.h - 无
..
我最近使用了一个允许使用以下类型语法的库: MyClass myObject; myObject .setMember1(“string value”) .setMember2(4.0f) .setMember3(-1); 显然,这是通过让setter返回MyClass&类型;例如return * this。我喜欢这种代码的外观,但我看不到很多。当这种情况发生
..
可以编写与C struct完全兼容的C ++类或结构。从兼容性我的意思是对象的大小和变量的内存位置。我知道它的邪恶使用 *(point *)& pnt 或甚至(float *)& pnt (在不同的情况下,变量是浮动),但认为它的真正需要的性能的缘故。 以这个例子 Class Point { long x,y; Point(long x,long y){ this-> x =
..
据我所知,不可能调用基类的构造函数。我知道的唯一方法是: MyClass :: MyClass(/ * args * /):Base(/ * args * /) { // ... } 但这将在开始时调用构造函数。 有没有办法在构造函数中的其他地方调用它?类似这样的: MyClass :: MyClass(/ * args * /) { // ...说
..
如果两个C ++文件具有相同名称的类的不同定义,那么当它们被编译和链接时,即使没有警告也会抛出异常。例如, // a.cc class Student { public: std :: string foo(){return“A”; } }; void foo_a() { 学生stu; std :: cout
..
我试图做一个小类,在父窗口中显示控制台窗口。 (你可以想象聊天或调试信息显示在那里) 现在,由于不同的instanes有不同的私有变量(如消息数组或父窗口),我需要使用非静态方法作为回调 我想到了一些方法,其中我将实际的类实例传递给静态回调函数,然后调用适当的方法,但在winAPI中,一切都是使用 TranslateMessage 和 DispatchMessage 给我没有机会使用我
..
说我们有这个代码: class A { public: A (1){} virtual〜A(){} int x; }; class B { public: B():y(2){} virtual〜B(){} void g() { cout
..
我有以下问题。我有一个外部库(不能修改)的函数,如下所示: void externalFunction(int n,void udf double *)); 我想作为udf函数传递给现有类的函数成员。请查看以下代码: //外部函数(通常来自外部库) void externalFunction n,void udf(double *)) { // do so
..
CUDA文档的3.2版本的附录D指的是CUDA设备代码中的C ++支持。 清楚地提到CUDA支持“用于计算能力2.x的设备的类”。但是,我正在使用计算能力1.1和1.3的设备,我可以使用此功能! 例如,此代码的工作原理: //类定义自愿简化 类Foo { private: int x_; public: __device__ Foo(){x_ = 42; }
..