methods相关内容

将内联方法从头文件移动到.cpp文件

我在 foo.h 头文件中定义了以下类。 class Foo { public: inline int Method(); }; inline int Foo :: Method(){// Implementation} 我现在想把实现移动到 foo.cpp 文件。为此,我必须删除 inline 关键字并将该方法的实现移动到 foo.cpp 文件像这 ..
发布时间:2016-10-28 05:16:59 C/C++开发

C ++:在虚拟方法表中强制函数的顺序?

如何控制虚拟表中虚拟函数的顺序? 当继承具有虚拟表的类时,它是继承类的虚拟表基类的扩展,或者是一个仅使用继承类虚函数创建的全新的虚拟表。 (即虚拟表仍然在类的索引+ 0x0) 解决方案 (a)就标准而言,你不能,(实际上你甚至不能假定vtables存在)。 (b)可能,但是什么情况下你需要控制的顺序,但你不能自己检查?检查的方法是查看虚拟调用的反汇编(并找到添加到vtable指针 ..
发布时间:2016-10-27 23:58:15 C/C++开发

vector的reserve()方法的行为

我想知道 std :: vector :: reserve()在以下情况下的行为: 假设 reserve(N)被立即多次调用。 保留(N1)是否会被添加或覆盖? 保存(N1)被最新调用覆盖, 然后如果最新的保留(Nn)需要较少的时隙? 在声明向量后,如果我们只需要 push_back() , 然后我们调用 reserve(N)。将 N ? 中是否已经包含 push_back() ..
发布时间:2016-10-27 22:05:16 C/C++开发

C ++方法声明问题

我在Image.cpp中有一些代码: Image :: Image(int width,int height,int depth) :m_sFileName(0) { ... } 和Image.h: 类图像:public DrawAble,public RenderAble { ... private: std :: string * m_sFileName; } ..
发布时间:2016-10-27 03:41:48 C/C++开发

虚拟方法的问题

如果两个方法都声明为虚拟的,我不会同时调用Method1()的两个实例作为派生类的Method1然后DERIVED每次调用。我正在做一些面试的审查,我想确保我有这个直。 xD class BaseClass { public: virtual void Method1(){cout ..
发布时间:2016-10-27 03:39:36 C/C++开发

是否应该将实现接口类的纯虚方法的方法声明为虚拟?

我对这个问题有不同的意见。让我们假设我有一个接口类有一堆纯虚拟方法。我在实现接口的类中实现这些方法,我不期望从实现中派生。 是否需要将实现中的方法声明为virtual以及?如果是,为什么? 解决方案 否 - 在基类中声明为virtual的每个函数方法都将在所有派生类中都是虚拟的。 / p> 但是好的编码实践告诉我们声明这些方法virtual。 ..
发布时间:2016-10-26 23:07:30 C/C++开发

什么时候虚拟方法应该是纯粹的?

如果一个基类将一个方法定义为虚拟的,但是我已经找到了一些我正在努力工作的代码, 实现一个空体,因此不需要派生类来实现一个体。 virtual void AMethod1(){} // 1 virtual void AMethod2(){assert(false);} // 2 virtual void AMethod3()= 0; // 3 目前的代码。 ..
发布时间:2016-10-26 22:15:41 C/C++开发

传递数组作为C ++中的方法的const参数

我想能够传递一个const数组参数到C ++中的方法。 我知道当你传递数组到方法时, void myMethod(int *); //传入指针指向数组的第一个项目,所以一个简单的方法是使用指针。 const inTab) 但是有一个数组有时会更好,你可以写出数组的大小。 解决方案 您可以使用数组大小​​的模板: http://ideone.com/0Qhra ..
发布时间:2016-10-24 13:43:16 C/C++开发

C ++:有没有办法限制对某些类的某些方法的访问,而不暴露其他私有成员?

我有一个类有受保护的方法Zig :: punt(),我只想要它可以访问的类“鳄梨”。在C ++中,通常使用“friend avocado”说明符执行此操作,但这将导致所有其他变量可供“Avocado”类访问;我不想这样,因为这打破了封装。 是我不可能的,或者已经存在一个晦涩的技巧,我可以用来实现我想? 提前感谢任何想法! 解决方案 这是一个丑陋但有效的方法: class ..
发布时间:2016-10-23 20:19:25 C/C++开发

方法链包括类构造函数

我想在C ++中实现方法链接,如果一个类的构造函数调用是一个单独的语句,例如: Foo foo; foo.bar()。baz(); 但是一旦构造函数调用成为方法链的一部分,编译器就会抱怨“ “。代替“。”。紧接在构造函数调用之后: Foo foo()。 现在我想知道如果这在C ++中是可能的。这是我的测试类: class Foo ..
发布时间:2016-10-23 19:39:38 C/C++开发

方法链包括类构造函数

我想在C ++中实现方法链接,如果一个类的构造函数调用是一个单独的语句,例如: Foo foo; foo.bar()。baz(); 但是一旦构造函数调用成为方法链的一部分,编译器就会抱怨“ “。代替“。”。紧接在构造函数调用之后: Foo foo()。 现在我想知道如果这在C ++中是可能的。这是我的测试类: class Foo ..
发布时间:2016-10-23 19:37:49 C/C++开发

LD_PRELOAD用于C ++类方法

我需要介入一个C ++程序中的方法调用(该类驻留在一个单独的共享库中)。我想我可以使用LD_PRELOAD,但我不知道这将如何工作(我只找到C函数的例子):是否有一种方法来设置插入一个单一的方法,而不复制任何代码从插入类实现? p> 解决方案 它不会很便携,但你可以在C中写入你的插入函数,并给它的C ++方法的名称。你必须明确地处理这个参数,当然,但我认为所有的ELF ABI只是把它看作是 ..
发布时间:2016-10-23 19:32:33 C/C++开发

C ++:使用方法的联合?

有一个或多个方法的union有什么问题吗?或任何值得注意的? (我可以看到构造函数/析构函数对精神分裂原因有问题) 解决方案 从C ++ 03& C ++ 0x(草图N3092)标准: 9.5联盟 联盟可以有成员函数(包括 构造函数和析构函数),但不是 virtual(10.3)函数。联合 不应该有基类。联合 不能用作基类。不能用作基类。 使用聚合初始化语法( U ..
发布时间:2016-10-23 14:04:29 C/C++开发

函数/方法重载C ++:数据类型混乱?

我在C ++中重载方法有些麻烦。 作为一个问题的例子,我有一个类有一些方法被重载,每个方法有一个参数有不同的数据类型。 我的问题:在这些方法应该出现在类中有一个特定的顺序,以确保正确的方法被调用取决于其参数数据类型? class SomeClass { public: ... void Method(bool paramater); void Method(std :: s ..
发布时间:2016-10-23 11:57:23 C/C++开发

类方法是否会增加类实例的大小?

这个问题很简单。为了清楚起见,考虑下面的例子: //注意,没有类有任何数据成员 //或者如果他们有数据成员,它们的大小,类型和数量相同 class Foo { public: void foo1(); void foo2(); // 96其他方法... void foo99(); }; class Bar { public: //只有一个方法 void ..
发布时间:2016-10-23 11:17:07 C/C++开发