function相关内容
如何修改以下代码以允许模板函数 ask_runUI()使用 s_EOF 而不使 s_EOF public? #include #include #include #include class AskBase { protected: std :: string m_prompt; std
..
可能重复: 假设我有一个函数 f : b $ b int f(int x){return x;} const int& a = f(1) 我知道 f(1)只是一个临时的,我会被破坏后这个语句,但 做引用const会给f(1)一个长寿命吗? 如果是,其中 f(1)将被存储? 这意味着 x 在范围外时也不会被销毁? f(1)和
..
为什么会导致编译器错误,说明我的引用不明确?我有一个 float , int 和 string 所有创建单独的函数签名,对吗? 这里是我到目前为止: code> #include #include using namespace std; int plus(int a,int b); float plus(float a,fl
..
在下面的代码中,它通过指向派生对象的指针调用虚函数foo。这个调用是通过vtable还是直接调用B :: foo? 如果它通过一个vtable,什么是C ++惯用的方式调用B :: foo直接? (我知道在这种情况下,我总是指向一个B) 非常感谢 A类 { public: virtual void foo(){} }; class B:public A
..
C ++中的 const 修饰符在星号之前表示使用此指针时,指向的值不能更改,而指针本身可以指向其他值。在下面 void justloadme(const int ** ptr) { * ptr = new int [5]; } int main() { int * ptr = NULL; justloadme(& ptr); } 不允许编辑传递
..
所以我在学习课程,我偶然发现了一些我觉得对我来说很尴尬的东西。 class Nebla { public: int test() { printtout(); return x; } void printtout() { printout2(); } private: int x,y; void printout2() { cout
..
由于我的设备,我不能使用虚拟功能。假设我有: class Base { void doSomething(){} } ; class Derived:public Base { void doSomething(){} }; //在任何地方 { Base * obj = new Derived; obj-> doSomething(); }
..
我需要从一个非const对象调用一个const函数。参见示例 struct IProcess { virtual bool doSomeWork()const = 0L; }; class Foo:public IProcess { virtual bool doSomeWork()const { ... } }; class Bar { public: c
..
我有一个看起来像这样的遗留函数: int Random()const { return var_? 4:0; } 我需要调用旧代码中的函数,像这样: int Random()const { return var_? newCall(4):0; } 问题是我收到此错误: 在成员函数'virtual int Random()
..
如何获得用作模板参数的任意函数类型的实例? 函数可以是普通函数,lambda或函子。示例: 模板 std :: size_t getArity() { // ...? } template void printArity(TFunc mFunc) { std :: cout
..
为什么这项工作? 我看到类似的SO问题说明它,但有人可以更详细地解释它吗?特别是,这种行为是否受到标准的保护? ih #ifndef I_H_ #define I_H_ typedef void(* FuncPtr)(); template void FuncTemplate(){} class C {}; #e
..
我有一个定义的函数指针: typedef void(* EventFunction)(int nEvent);有没有办法用一个C ++对象的特定实例来处理这个函数? class A { private: EventFunction handler; public: void SetEvent(EventFunction func){handler = func;
..
如果函数返回一个int,可以通过int值赋值吗?我不觉得给一个函数赋值太有意义了。 int f(){} f()= 1; $ b $ p 我注意到,如果函数返回一个int的引用,它只限于int吗?其他类型怎么样?或任何其他规则? int& f(){} f()= 1; 解决方案 第一个函数返回一个整数by-是 r值。通常不能将r值分配给r
..
阅读sbi和Eli Bendersky在这个问题我开始想知道什么是静态成员函数。 类的朋友自由函数应该不能做任何一个静态成员函数可以做什么? 解决方案 一般情况下: 需要访问私有成员 static成员函数可以访问类的私有成员。如果需要,可以使用静态成员函数。你必须在标题中声明它,让它访问,所以你可以使它成为一个成员,而不是一个朋友。对于具有作为singleton的getI
..
以下是完全合法的 C ++ 代码 void foo (int){ cout
..
我现在正在试验python函数。我已经找到一种方法来将python函数导入到c / c ++代码中,但是没有其他方法。 我有一个c ++程序,它有一个特定的函数在里面。我想将编译好的c ++程序“导入”到我的python脚本并调用c ++函数。 为简单起见,说c ++函数很简单: / p> int square(x) { return x * x; }
..
我有一个函数处理给定的向量,但也可以创建这样的向量本身,如果没有给出。 对于这种情况,我看到两个设计选择,其中一个函数参数是可选的: 指针,并使它 NULL 默认情况下: void foo ,std :: vector * optional = NULL){ if(optional == NULL){ optional = new std :: vector
..
C ++是一种静态的编译语言,模板在编译时被解析等等... 但是可以在运行时创建一个函数,在源代码中没有描述,并且在编译期间没有被转换为机器语言,因此用户可以在源中抛出未预期的数据? 我知道这不可能发生在一个直接的方式,但肯定是必须是可能的,有很多的编程语言,没有编译和创建动态的那些东西在C或C ++实现。 也许如果创建所有原始类型的工厂以及合适的数据结构来将它们组织成更复杂的对
..
我想知道是否可以编写一个函数来返回一个lambda函数在C ++ 11。当然一个问题是如何声明这样的函数。每个lambda都有一个类型,但该类型在C ++中不可表达。我不认为这会工作: auto retFun() - > decltype([](int x) - > int) { return [](int x){return x; } } 也不是这样:
..
我一直在尝试在C ++中实现一个C#类的事件系统,使用tr1函数模板来存储处理事件的函数。 我创建了一个向量,以便可以将多个侦听器附加到此事件,例如: vector > listenerList; 我想从列表中删除一个处理程序,以停止监听器接收事件。 那么,我如何找到这个列表中对应于给定监听器的条目?我可以测试
..