function相关内容
考虑函数: char * func() { return“Some thing” ; } 是常量 string ( char 数组)“某事”存储在堆栈中作为函数调用的本地或堆? 我是 函数被多次调用,有多少副本“有事”在内存中? (和是堆还是堆栈?) 解决方案 字符串字面量“某事”是 const char * 因此,它们既不在堆上也不在栈上,而是在
..
我的问题是参考此问题,其中解释了虚拟函数在对象切片的情况下工作,最终调用基类虚拟函数和维基百科文章,其解释虚拟下面代码的派生类的表格布局 class A { public: virtual void func(){cout
..
我试过下面的代码: #include #include using namespace std; string f1(string s) { return s =“f1 called”; } void f2(string * s) { cout
..
我需要找到一些方法来模拟C ++中的函数返回类型的重载。 我知道没有办法直接做,但我希望有一些开箱即用的方法。 我们正在为用户创建一个API,他们将传递一个数据字符串,该字符串根据字符串信息检索值。这些值是不同的类型。实质上,我们希望让他们这样做: int = RetrieveValue(dataString1); double = RetrieveValue(dataStri
..
下面的代码不能在gcc 4.5上编译,因为调用foo是不明确的。消除歧义的正确方法是什么? #include #include using namespace std; void foo(std :: function t) { t(1,2) } void foo(std :: f
..
何时将局部变量作为参数推送到函数/方法,而不是使用类变量代替函数/方法变量。 例如,我可以有一个函数: int DoSomething(int var) { if(var == -1) return 0; } 或者我可以有一个类变量“_var”函数,像这样: int DoSomething() { if(_var == -1) return
..
我试图从std ::函数中找到函数的地址。 第一个解决方案是: size_t getAddress(std :: function function){ typedef void(fnType)(void); fnType ** fnPointer = function.target(); return(size_t)* fn
..
让我们假设我们有一个形式的函数: const SomeObject& SomeScope :: ReturnEnterObject() { if(!SomeCondition) { // return early return; } return ourObject; } 很明显,上面的代码有一个问题,如果条件失败,问题是如何从这个函数返回。 我
..
我开始学习C ++。在IDE代码块中,编译: #include using namespace std; void hi(){ cout
..
void foo(int) { } class X { void foo { } void bar() { foo(42); //错误:没有匹配的函数调用'X :: foo(int)' //注意:候选是: //注意:void X :: foo b $ b //注:候选期望有0个参数,1提供 } };为什么C ++无法调用自由函数(这是唯一具有正确签名的函
..
说我有一些函数,每个约两个简单的代码,并且他们这样调用: A 调用 B 调用 C 调用 D ...调用 K 。 (因此基本上是一系列长的函数调用。)编译器通常在调用树中如何深入到内联这些函数? 解决方案 这个问题没有意义。 如果你想到内联及其后果,你会意识到: 避免函数调用(所有寄存器保存/帧调整) 向优化器暴露更多上下文 $ b 重复代码(膨胀指令缓存和可执行文件大小等
..
在C ++中,当应该返回一个对象的函数结束时没有return语句会发生什么?返回了什么? 例如。 std :: string func(){} 解决方案 返回什么? b $ b 我们不知道。根据标准,行为未定义。 $ 6.6.3 / 2返回语句 [stmt.return] : (强调我) 流出一个构造函数
..
可以创建一个 std :: vector ,它可以包含任何签名的 std :: function ? (函数参数都将被预先绑定。) 我尝试了 std :: vector > ,因为如果我只有一个 std :: function ,我可以绑定任何函数。 这似乎在一个向量内部不起作用:如果我试图添加一个函数 std :: bind 除
..
我有两个类A和B.控制是在类A的成员函数之一。成员函数计算结果,我现在想要发送此值到类B的成员函数之一,我试过下面的方式,但它dint工作 int memberFunctionOfA() { ... //结果存储在一些临时值,说temp B :: memberFunctionOfB(temp); //我尝试的方式 } comiler报告错误。我也试过像
..
我有一个结构: typedef struct { double x,y,z; } XYZ; 我要定义一个这样的函数: double CalcDisparity(XYZ objposition, XYZ eyeposition, double InterOccularDistance = 65.0) 但我似乎没有找到一种方法来为eyepos
..
在C ++中,有没有办法从这样的指针获得函数签名/名称? void test float data){} cout
..
我试图找出一个方法,如何能够分配一个函数指针到具有不同数量的参数的函数。 我有一个while循环,它接受一些不同的函数作为一个条件语句,所以,而不是写多个while循环与完全相同的代码里面我想有一个带有一个函数指针。所有的函数都是格式 bool f(...)。我认为一些代码将最好地说明我的意思: int a,b,c,d; MyClass * my_class; typed
..
我知道可以单独创建一个成员函数的指针,像这样 struct K {void func }}; typedef void FuncType(); typedef FuncType K :: * MemFuncType; MemFuncType pF =& K :: func; 有类似的方法来构造一个指向const函数的指针吗?我试着添加const在各个地方没有成
..
我有一个理解一些C ++语法结合函数指针和函数声明的问题,即: 通常当我们声明一个类型的函数类似: typedef void(* functionPtr)(int); 这对我来说很好。从现在开始,functionPtr是一个类型,它代表 指向函数的指针,返回void并以一个值作为参数接受int。 它如下: typedef void(* funct
..
#include 类名 { public: int a; name():a(0){}; }; void add(name * pname) { pname = NULL; } int main() { name varName(); name * pName = new name(); add(pName); add(& varNam
..