目录
面向对象:类的定义
// 类和对象.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <string.h>
class person
{
private:
// 成员变量
char name[20];
char sex;
int age;
int idnum;
public:
// 成员函数
void setInformation(char *na, char s, int a, int num)
{
strcpy(name, na);
sex = s;
age = a;
idnum = num;
}
void getName(char *na)
{
strcpy(na, name);
}
char getSex()
{
return sex;
}
int getAge()
{
return age;
}
void setData(char[], char, int, int);
protected:
void changeID(int num)
{
idnum = num;
}
};
void person::setData(char na[], char s, int a, int num) // 使用范围解析运算符::来定义成员函数
{
strcpy(name, na);
sex = s;
age = a;
idnum = num;
}
int main()
{
person p; // 创建一个对象
p.setInformation("Dylan", 'm', 20, 123456); // 调用该对象的成员函数
return 0;
}
关键字private,protected,public 表示类的成员的访问权限:私有的,保护的和公有的。
私有成员和保护成员在类外不能使用成员访问运算符(.)来直接访问。
成员访问权限 | 类内访问特性 | 类外访问特性 |
private | 可直接访问 | 不可直接访问 |
protected | 可直接访问 | 不可直接访问 |
public | 可直接访问 | 可直接访问 |
类的成员函数
- 使用成员函数来访问类的成员,而不是直接访问这些类的成员。
- 类成员函数是类的一个成员,可以操作类的任意对象,可以访问对象中的所有成员。
- 成员函数可以在 类定义内部 定义,或者单独使用范围解析运算符::来定义。
- 在类定义中定义的成员函数把函数声明为内联的。
公有成员
公有成员(公有变量,公有成员函数)在类的外部是可以访问的。
私有成员
私有成员变量或函数在类的外部是不可访问的,甚至是不可查看的。只有在类内和友元函数可以访问私有成员。
默认情况下,类的所有成员都是私有的。在没有使用任何访问修饰符(private,protected,public)时,类的成员将被假定为私有成员。
实际操作中,我们一般会在私有区域定义数据,在公有区域定义相关的函数,以便在类的外部也可以调用这些函数,
保护成员
保护成员变量或函数与私有成员十分相似,但不同的是,保护成员在派生类(子类)中是可以访问的。
三种访问权限在继承中的特点
继承方式 | 基类成员访问属性 | 在派生类中的访问属性 |
public | public | public |
protected | protected | |
private | private | |
protected | public | protected |
protected | protected | |
private | private | |
private | public | private |
protected | private | |
private | private |
1.private 成员只能被本类成员(类内)和友元访问,不能被派生类访问;
2.protected 成员可以被派生类访问。