类的常量成员[英] Constant member of a class

问题描述

#include <iostream>
使用命名空间标准;

类常量成员
{
const int m_const;
公开:
ConstantMember(int cons = 10):m_const(cons){}
int getConst() const{ return m_const;}
};

int main()
{
常量成员 X;//(20);
cout <返回0;
}

以上是编译出来的程序 &使用 g++ 链接.有吗
使用
初始化常量成员变量的任何其他方式在创建对象时构造函数?

推荐答案

2008 年 7 月 4 日星期五 02:08:13 -0700,Anarki 写道:
#include <iostream>
使用命名空间标准;

类常量成员
{
const int m_const;
公开:
ConstantMember(int cons = 10):m_const(cons){} int getConst() const
{
返回 m_const;}
};

int main()
{
常量成员 X;//(20);
cout <返回0;
}

以上是编译出来的程序 &使用 g++ 链接.有吗
使用构造函数初始化常量成员变量的任何其他方式
在创建对象时?
有两点:初始化和构造函数体执行,
在初始化器中初始化 const 成员函数的原因是
到构造函数体执行时,初始化是
完整的,对于 const 成员,这是不可能的,因为一旦你
分配你以后不能更改的值.

HTH

有两点:初始化和构造函数体执行,
在初始化程序中初始化 const 成员函数的原因
当然是"const 成员".非 const 成员函数

7 月 4 日上午 5:08,Anarki <Deepchan...@gmail.com 写道:
#include <iostream>
使用命名空间标准;

类常量成员
{
const int m_const;
公开:
ConstantMember(int cons = 10):m_const(cons){}
int getConst() const{ return m_const;}

};

int main()
{
常量成员 X;//(20);
cout <返回0;

}

以上是编译出来的程序 &使用 g++ 链接.有吗
使用
初始化常量成员变量的任何其他方式创建对象时的构造函数?

嗯,是的,复制上面代码中为你生成的ctor和
应该看起来像 ...

C类
{
常量 int m;
公开:
C(int n = 10) : m(n) { }
C(const C& copy) : m(copy.m)//... 这个
{
std::cout <<"复制\n";
}
int get() const { 返回 m;}
};

int main()
{
C c;
std::cout <<c.get() <<标准::endl;
C警察(c);
std::cout <<cop.get() <<标准::endl;
}

/*
10
复制
10
*/

本文地址:https://www.itbaoku.cn/post/1050727.html