您的位置:首页 > 编程语言 > C语言/C++

【菜鸟C++学习笔记】10.类、对象和成员

2012-07-13 16:16 447 查看
类是对象的抽象,对象是具体事务,里面包括的玩意儿称为成员。

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"此时就不必重新敲一遍类定义的代码了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: