const这些声明中的含义是什么?该const混淆了我.
class foobar
{
public:
operator int () const;
const char* foo() const;
};
Run Code Online (Sandbox Code Playgroud) 快速提问:
int testfunc1 (const int a)
{
return a;
}
int testfunc2 (int const a)
{
return a;
}
Run Code Online (Sandbox Code Playgroud)
这两个功能在每个方面都是相同的还是有区别的?我对C语言的答案感兴趣,但如果C++语言中有一些有趣的东西,我也想知道.
正如标题中所提到的,我想知道'this'指针的类型.
我正在研究一个项目,我发现'this'指针的类型是"ClassName * const this"在使用VC++ 2008的Windows上.我想知道是什么需要/要求使这个指针成为一个常量指针.谢谢.
我已经看到很多使用const关键字放在类中的函数之后,所以我想知道它是什么.我在这里读了一下:http://duramecho.com/ComputerInformation/WhyHowCppConst.html.
它表示使用const是因为函数"可以尝试改变对象中的任何成员变量".如果这是真的,那么它应该在任何地方使用,因为我不希望以任何方式改变或改变任何成员变量.
class Class2
{ void Method1() const;
int MemberVariable1;}
Run Code Online (Sandbox Code Playgroud)
那么,const的真正定义和用途是什么?
我非常熟悉C/C++标准函数声明.我最近看到过这样的事情:
int myfunction(char parameter) const
Run Code Online (Sandbox Code Playgroud)
以上只是一个假设的例子,我甚至不知道它是否有意义.我指的是参数之后的部分.常数.这是什么?
一个更真实的例子:
wxGridCellCoordsArray GetSelectedCells() const
Run Code Online (Sandbox Code Playgroud)
这可以在这里找到
那么该文本const在行尾的确切做什么?
赋值是创建一个getArea()返回矩形区域的常量函数.
double getArea() {
return width * height;
}
Run Code Online (Sandbox Code Playgroud)
是这个吗?
我在参数后面加上const吗?
我真的不明白我被问到了什么.
是否可以根据类是唯一的公共函数来调用类的函数?我的意思是:
就像是:
double res = MyClass().myFunction(n);
Run Code Online (Sandbox Code Playgroud)
变成
double res = MyClass()[0](n);
Run Code Online (Sandbox Code Playgroud)
double res = MyClass().reflection("myFunction")(n);
Run Code Online (Sandbox Code Playgroud)
但似乎不可能不浪费至少两倍的墨水来写函数名(函数指针和映射中的相应字符串)。
在函数标题/ prototype之后const之前和const之间有什么区别?另外在下面的例子中做什么?
例如.
const E& top() const throw(StackEmpty);
Run Code Online (Sandbox Code Playgroud) c++ ×8
const ×4
class ×2
function ×2
c ×1
c++-faq ×1
constants ×1
declaration ×1
oop ×1
reflection ×1
this-pointer ×1