function相关内容

未使用的代码中的开销

我想知道你的代码中有没有使用的函数的开销。 例如,你有一些调试日志,然后给你的大多数对象在调试日志中使用的ToString()函数。 在未使用调试日志记录的版本构建中。那么它是否值得删除那些ToString()函数的源代码? (例如通过宏?) 或者,它们只是使可执行文件稍大一点,否则不会影响性能?例如没有速度影响?或者编译器或链接器可能甚至删除函数,如果他们不使用?如果编译器或链 ..
发布时间:2016-10-17 10:02:41 C/C++开发

如何在C ++中定义一个全局函数?

我想要一个不是类的成员并且可以从任何类访问的函数。 我假设我需要 #include 声明函数的头文件,但我不知道在哪里定义这样的全局函数。 解决方案 你需要一个正文(在 cpp 文件): int foo() { return 1; } 和头文件中的定义/原型,使用函数: #ifndef MY_FOO_HEADER_ #define MY_ ..
发布时间:2016-10-17 09:58:56 C/C++开发

哪个更有效:返回一个值而不是通过引用?

我目前正在研究如何编写高效的C ++代码,并且在函数调用的问题上,一个问题出现了。比较此伪码函数: not-void function-name(){ do-something return值; } int main(){ ... arg = function-name(); ... } / p> void function-name( ..
发布时间:2016-10-17 09:50:41 C/C++开发

斐波纳契函数问题

我在计算Fibonacci序列,偶然发现这个代码,我看到了很多: int Fibonacci x) { if(x return 1; } return Fibonacci(x-1)+ Fibonacci(x-2); } 我不明白是如何工作的,结束:它是否再次调用Fibonacci函数? 解决方案 是的,函数调用自身。例如, 斐波纳契(4) ..
发布时间:2016-10-17 09:44:28 C/C++开发

为什么类成员函数内联?

我想我之前已经问过我的问题,我已经阅读过,但仍然很困惑,因此要求澄清。 C ++标准说,类定义中定义的所有成员函数都是内联的 我也听说编译器可以忽略函数的内联。在上面的情况下是真的,如果在类定义的内部定义,它将总是内联的? 此外,这个设计背后的原因是什么,使所有的函数定义在类定义内部?内联与源文件和头文件有什么关系? 更新:因此,如果不内联,应该总是在类外定义他们的函数,对 ..
发布时间:2016-10-17 09:39:36 C/C++开发

何时使用静态成员函数?

可能的重复项: C ++:静态成员函数 什么时候在C ++中使用静态成员函数? 解决方案 静态成员函数的良好用途: 元编程。现实世界的例子是模板std :: char_traits。所有成员函数都是静态的 使它成为一个静态成员函数,它可以访问类的私有成员,虽然这里的朋友也可以。 因此,受保护的静态成员函数只能由其派生的类和类访问。 请注意,最后一种情况适用于受保 ..
发布时间:2016-10-17 09:17:26 C/C++开发

为什么vptr不是静态的?

每个包含一个或多个虚函数的类都有一个与它相关的V表。一个名为vptr的void指针指向该vtable。该类的每个对象都包含指向同一个Vtable的vptr。那么为什么vptr不是静态的呢?而不是将vptr与对象关联,为什么不将它与类关联? 解决方案 对象的运行时类是对象本身的属性。实际上, vptr 表示运行时类,因此不能是 static 。但是,它指向的是同一个运行时类的所有实例可以共享 ..
发布时间:2016-10-17 09:16:07 C/C++开发

为什么C ++不具有指向成员函数类型的指针?

我可能完全错了,但是我明白,C ++并没有一个本地的“指针成员函数”类型。我知道你可以使用Boost和mem_fun等等。但是为什么C ++的设计者决定不要有一个包含指向函数的指针和指向对象的指针的64位指针,例如? 我的意思是指向未知类型的特定对象的成员函数的指针。 I.E.您可以用于回电的内容。这是一个包含两个值的类型。第一个值是指向函数的指针,第二个值是指向对象的特定实例的指针。 ..
发布时间:2016-10-17 09:15:36 C/C++开发

C ++函数覆盖

我有三个不同的基类: class BaseA { public: virtual int foo()= 0; }; class BaseB { public: virtual int foo(){return 42; } }; class BaseC { public: int foo(){return 42; } }; 然后, ..
发布时间:2016-10-17 09:11:08 C/C++开发

在C ++中如何通常实现函数重载?

如果没有函数重载,函数名称将作为函数代码的地址,当函数被调用时,其地址很容易使用其名称查找。但是对于函数重载,程序如何才能找到正确的函数地址呢?是否有一个类似于虚拟表的隐藏表,存储重载的函数及其地址?非常感谢! 解决方案 编译器可以查看调用,并将其与已知的重载实现匹配,正确对象,真爱。 更新:删除了我在尝试通过展示来展示概念时所做的尝试。编译器可以选择不同命名的函数。 ..
发布时间:2016-10-17 09:10:37 C/C++开发

如何传递一个向量到函数?

我试图发送一个向量作为参数到一个函数,我不知道如何使它的工作。尝试了一堆不同的方式,但他们都给出不同的错误消息。 我只包括部分代码,因为它只有这一部分不工作。 (向量“random”随机填充,但排序,值介于0和200之间) 更新代码: #include #include #include #include ..
发布时间:2016-10-14 22:54:06 C/C++开发

在C ++中使用const重载是什么?

在C ++中,函数的签名部分取决于它是否为const。这意味着一个类可以有两个成员函数具有相同的签名,除了一个是const和另一个不是。如果你有一个这样的类,编译器将决定哪个函数调用基于对象你调用它:如果它是类的const实例,函数的const版本将被调用;如果对象不是const,将调用其他版本。 在什么情况下您可能想利用此功能? 解决方案 这真的只有当成员函数返回一个指针或引用你的 ..
发布时间:2016-10-14 22:52:17 C/C++开发

这个指针和成员函数地址

我想获得一个成员函数的地址,但我不知道如何。我会感激,如果有人可以告诉我我做错了什么。正如你在下面的例子中可以看到的,既没有(长)& g也没有(长)& this-> g工作,我无法弄清楚正确的语法: / *创建一个类(冗余地)执行数据成员选择 和使用this关键字的成员函数调用(指的是 地址当前对象)。 * / #include using namespac ..
发布时间:2016-10-14 22:28:12 C/C++开发