#include <iostream>
#include<cstdio>
#include<string>
using namespace std;
class A
{
public:
A():b(m_a),m_a(10)//初始化顺序按照声明顺序
{}
A(int data):m_a(data)
{
//m_a=data //常变量只能初始化不能复制
}
void print()
{
cout << m_a << "\t" << b << endl;
}
private:
mutable int b;
const int m_a;//常成员变量必须使用初始化参数列表初始化,初始化之后不能修改
};
class Student
{
public:
Student(string const& name,int age):m_name(name),m_age(age)
{}
void print(/* Student* const this */ ) const
{
cout << m_name << "," << m_age << endl;
}
void print(/* Student* const this */)
{
cout << m_name << "," << m_age << endl;
}
private:
string m_name;
int m_age;
};
//常对象
//被const修饰的对象,对象指针或者对象引用,统称为常对象
//常对象只能调用常函数
//非常对象可以调用常函数,优先调用非常
int main()
{
//const 修饰前面的
Student stu("石忠祥", 18);
stu.print();
const Student stul("hin", 20);
stul.print();
return 0;
}
C++常成员
最新推荐文章于 2024-10-16 19:08:56 发布