【菜鸟C++学习笔记】10.类、对象和成员
2012-07-13 16:16
447 查看
类是对象的抽象,对象是具体事务,里面包括的玩意儿称为成员。
1、类的声明:
类必须声明后才能使用,声明方法如下:
第1行:声明了一个Human类,接着的一对“{}”中都为这个类的成员
第3行:public表示成员的方法是公有的,第6行private表示后面的数据成员都是私有的,不能共享。
第4-5行:表示该类的方法,即功能
第7-8行:表示该类的数据
第9行:以“;”表示类声明的结束
注意:类进行声明时,系统并未分配内存空间,声明一个类只是告诉编译器这个类是什么,包含哪些数据和功能,以及类的大小(根据类里的变量决定)
2、对象的使用:
定义对象的方法:写下类名,空格输入需要定义的对象名即可
1)访问数据成员并赋值:用点运算符“.”访问该对象的数据成员,如:
2)访问成员函数:方法相同
3、公有和私有
公有:用关键字public将成员设为公有,它可以被该类的所有成员访问。
私有:如果将类中public关键词删掉,程序一般默认类中的数据为私有,禁止共享,此时对象不能直接访问,若要访问私有数据,需要在对象中建立一个公有的函数接口进行访问,如下面的程序:
分析:在本程序中,使用了两个函数set()和print()作为公共接口函数,对象只能通过这个类中的公共接口函数去对私有数据age进行赋值和输出。
作用:为提高代码的安全性。如可以防止错误的输入和输出,比如本例中将年龄设为250就是个很扯淡的事,这样通过对set函数进行限定可以防止这种无聊行为,如:
由于这个成员函数比较复杂,一般不把它写到类的声明里面,而是在类中进行声明,声明方法与函数的声明是相同的,而在类外定义时,需要用到域运算符"::",形式如下:
总结:一般情况下,我们将类的数据成员设为私有,而将类的函数设为公有以方便访问私有数据。好处是数据的赋值和读写分开操作。
4、类定义头文件
一般情况下,可以将类的定义保存为一个.h的头文件,这样便于一个头文件被多个.cpp的文件所调用,在具体实现时,只需要加入一行代码:
#include "Human.h"此时就不必重新敲一遍类定义的代码了。
1、类的声明:
类必须声明后才能使用,声明方法如下:
class Human { public: void get_age(); void get_weight(); private: int age; int weight; };分析:
第1行:声明了一个Human类,接着的一对“{}”中都为这个类的成员
第3行:public表示成员的方法是公有的,第6行private表示后面的数据成员都是私有的,不能共享。
第4-5行:表示该类的方法,即功能
第7-8行:表示该类的数据
第9行:以“;”表示类声明的结束
注意:类进行声明时,系统并未分配内存空间,声明一个类只是告诉编译器这个类是什么,包含哪些数据和功能,以及类的大小(根据类里的变量决定)
2、对象的使用:
定义对象的方法:写下类名,空格输入需要定义的对象名即可
Human Tom;用对象访问成员的方法:
1)访问数据成员并赋值:用点运算符“.”访问该对象的数据成员,如:
Tom.age=250;
2)访问成员函数:方法相同
Tom.get_age();注意:不能用上述方法直接给类赋值,因为类不是一个具体的个体。另外,对象只能调用类中已存在的成员。
3、公有和私有
公有:用关键字public将成员设为公有,它可以被该类的所有成员访问。
私有:如果将类中public关键词删掉,程序一般默认类中的数据为私有,禁止共享,此时对象不能直接访问,若要访问私有数据,需要在对象中建立一个公有的函数接口进行访问,如下面的程序:
#include<iostream> using namespace std; class Human { public: void set(int a) { age=a; } int print() { return age; } private: int age; }; int main() { Human Tom; Tom.set(250); cout<<"Tom的年龄是:"<<Tom.print()<<endl; return 0; }输出结果:Tom的年龄是:250
分析:在本程序中,使用了两个函数set()和print()作为公共接口函数,对象只能通过这个类中的公共接口函数去对私有数据age进行赋值和输出。
作用:为提高代码的安全性。如可以防止错误的输入和输出,比如本例中将年龄设为250就是个很扯淡的事,这样通过对set函数进行限定可以防止这种无聊行为,如:
void set() { if(a>0&&a<120) age=a; else { cout<<"别扯淡了,重新输入参数"<<endl; age=0; } }
由于这个成员函数比较复杂,一般不把它写到类的声明里面,而是在类中进行声明,声明方法与函数的声明是相同的,而在类外定义时,需要用到域运算符"::",形式如下:
void Human::set(int a)后面照常定义即可。
总结:一般情况下,我们将类的数据成员设为私有,而将类的函数设为公有以方便访问私有数据。好处是数据的赋值和读写分开操作。
4、类定义头文件
一般情况下,可以将类的定义保存为一个.h的头文件,这样便于一个头文件被多个.cpp的文件所调用,在具体实现时,只需要加入一行代码:
#include "Human.h"此时就不必重新敲一遍类定义的代码了。
相关文章推荐
- [C++学习笔记]--常量对象、常量成员函数和常引用
- C++ 中的成员对象(学习笔记)
- C++基础学习笔记----第十一课(类的静态成员、对象模型初步认识)
- 【C++学习笔记】使用控制符及流对象的成员函数控制输出格式
- [C++学习笔记]--成员对象和封闭类
- 【菜鸟C++学习笔记】23. 对象的传递机制
- 【菜鸟C++学习笔记】11.内联函数与const成员函数
- C++之面向对象学习笔记01
- 【菜鸟C++学习笔记】15.switch语句
- java个人学习笔记06(类、对象、成员变量、局部变量)
- C++学习笔记之——回顾const对象、const成员函数、mutable类型
- 【C++】【学习笔记】【014】对象
- 【学习笔记02】java面向对象-成员变量、匿名对象
- C++学习笔记-静态成员注意事项
- C++学习笔记21 多态遇上对象数组
- 【学习笔记14】java面向对象-成员内部类、局部内部类
- 深度探索C++对象模型学习笔记——Function语意学
- C++中临时对象的学习笔记
- C++学习笔记--类的静态成员变量和静态成员函数
- 【菜鸟C++学习笔记】17.指针在堆中的操作