C++作为面向对象的程序设计语言,和C语言面向过程的语言有很多的不同。C++类包含私有和公有部分。其中,我们一般将成员数据定义为private(或者protected),将成员函数定义为public。如果是先学习C语言,刚上手C++可能会不太适应对象成员数据的访问。本人初学C++也一样遇到了在外部对对象数据成员进行赋值的问题。
我总结了两个方法:
1、最基本的办法是在定义对象的时候直接初始化,那么如何将外部输入的数据初始化到对象成员数据当中呢?可以在主函数中先定义一个变量保存外部输入的数据,再初始化给对象。例如:
#include#include using namespace std; class CStudent { char Name[10]; int Math, English, Computer, Sum; public: CStudent(char *name, int math, int english, int computer); //构造函数 int get_Sum() { return Sum; } char get_Name() { return *Name; } }; CStudent::CStudent(char *name, int math, int english, int computer) { strcpy(Name,name); Math=math; English=english; Computer=computer; } int main() { char a[10],b[10],c[10]; //定义变量储存外部输入数据 cin>>a>>b>>c; CStudent student[3] = { CStudent(a,90,91,90),CStudent(b,95,94,96), CStudent(c,87,78,89) }; //将外部数据给对象初始化 return 0; }
2、我们知道类中的private成员在类外是无法直接被访问的,那么我们在主函数对对象成员的操作就变得困难。但是,类中的函数可以操作类中的数据啊。前面在主函数中给对象赋值其实还是保留的C的习惯。C++中绝大多数操作都可在类中进行,既然外部访问不方便何不直接在类中定义一个输入函数,这样就不存在访问受限的问题了。
#include#include using namespace std; class CStudent { string num; string name; double score; public: CStudent(); void Input(); }; void CStudent::Input() { cin>>num>>name>>score; } int main() { int i; CStudent stu[5]; for(i=0;i<5;i++) stu[i].Input(); return 0; }
本人初学C++,仅以此文记录学习体会。



