相关疑难解决方法(0)

使用'const'作为函数参数

你走多远const?您是否只是const在必要时制作功能,或者您是否全力以赴并在任何地方使用它?例如,想象一个简单的mutator,它接受一个布尔参数:

void SetValue(const bool b) { my_val_ = b; }
Run Code Online (Sandbox Code Playgroud)

const实际上有用吗?我个人选择广泛使用它,包括参数,但在这种情况下,我想知道它是否值得?

我还惊讶地发现你可以省略const函数声明中的参数,但可以将它包含在函数定义中,例如:

.h文件

void func(int n, long l);
Run Code Online (Sandbox Code Playgroud)

.cpp文件

void func(const int n, const long l)
Run Code Online (Sandbox Code Playgroud)

是否有一个原因?这对我来说似乎有点不寻常.

c++ const

368
推荐指数
15
解决办法
24万
查看次数


const指针有什么用(与指向const对象的指针相对)?

我经常使用const对象的指针,就像这样......

const int *p;
Run Code Online (Sandbox Code Playgroud)

这只是意味着您无法更改p指向的整数p.但是我也看到了const指针的引用,这样宣称......

int* const p;
Run Code Online (Sandbox Code Playgroud)

据我所知,这意味着指针变量本身是不变的 - 你可以改变它整天指向的整数,但你不能指出其他东西.

有什么可能的用途?

c c++ const

28
推荐指数
5
解决办法
1万
查看次数

这些声明在C中有什么区别?

在C和C++中,以下声明有什么作用?

const int * i;
int * const i;
const volatile int ip;
const int *i;
Run Code Online (Sandbox Code Playgroud)

上述任何声明是否有误?

如果不是它们之间的含义和区别是什么?

什么是上述声明的有效使用(我的意思是在什么情况下,我们在C/C++ /嵌入式C使用它们)?

c c++ pointers declaration

5
推荐指数
1
解决办法
1383
查看次数

构造函数定义和声明之间不匹配

我有以下C++代码,其中声明中我的构造函数的参数具有与构造函数的定义不同的常量.

//testClass.hpp
class testClass {
  public:
     testClass(const int *x);
};

//testClass.cpp
testClass::testClass(const int * const x) {}
Run Code Online (Sandbox Code Playgroud)

我能够使用g ++编译这个没有警告,如果这个代码编译或至少给出一些警告?事实证明,64位solaris上的内置C++编译器给了我一个链接器错误,这就是我注意到存在问题的方式.

在这种情况下匹配参数的规则是什么?这取决于编译器吗?

c++ solaris g++

5
推荐指数
3
解决办法
842
查看次数

标签 统计

c++ ×4

c ×3

const ×3

pointers ×2

declaration ×1

g++ ×1

solaris ×1