很长一段时间没有写过C++的类了,写多了Java发现不太会写C++了。我们知道,C++有三种访问类型,分别是public,protected和private。
成员函数和成员变量
面向对象具有封装性。所谓封装是类外部而言,类成员函数之间没有访问限制。为了达到封装的效果,有些成员变量,类是不需要暴露给外部的。于是有了 public 变量(或函数) 和 private 变量(或函数),public 变量(或函数)可由类对象直接调用访问,而 private 变量则往往是不需要或者说类不想让外部直接调用的,则需要通过调用成员函数来实现访问。
#include <iostream>
#include <iomanip>
using namespace std;
class base{
private:
int privateData;
public:
int publicData;
public:
base(int data1=0, int data2=0):privateData(data1), publicData(data2){}
void printClassMember();
private:
void printPrivate() {
cout <<"private: " <<privateData <<endl;
}
void printPublic() {
cout <<"public: " <<publicData <<endl;
}
};
void base::printClassMember()
{
printPrivate();
printPrivate();
//------- 成员函数里,这里可以用使用上面的访问方法,也可以直接使用下面的,访问不受限制
//cout <<"private: " <<privateData <<endl;
//cout <<"public: " <<publicData <<endl;
}
int main()
{
base A(1, 2);
//------------------public 成员访问--------------------
cout <<"public: " <<A.publicData <<endl;
A.printClassMember();
//------------------private 成员访