目录
1、类和对象的概念
2、面向对象程序设计的特点
3、类和对象的区别
4、成员运行算符
(1)(.)点运算符
(2)(->)箭头运算符
5、类的声明形式
(1)public
(2) private
(3) protected
6、成员函数调用中的目的对象
可以说这里才是C++的真正开始!
类是一种自定义数据类型,是对一类事物共同属性和行为的抽象。
对象是该类的某一特定实例,是具体的,占内存空间的。
可以把类当成是一种自定义数据类型,对象则是该数据类型定义的一个变量。
抽象;封装;继承;多态
类是对象的抽象, 不占用内存;而对象是类的具体实例, 占用存储空间。
.(点)和 ->(箭头) 用于引用类、结构和共用体的成员
点运算符应用于实际的对象;箭头运算符与一个指向对象的指针一起使用。
假设有下面的结构:
struct Employee {
char first_name[16];
int age;
} emp;
strcpy(emp.first_name, "zara");
表示把值 "zara" 赋给对象 emp 的 first_name 成员:
如果 p_emp 是一个指针,指向类型为 Employee 的对象,要把值 "zara" 赋给对象 emp 的 first_name 成员,则需要
strcpy(p_emp->first_name, "zara");
-> 称为箭头运算符,它是由一个减号加上一个大于号组成。
简而言之:访问结构的成员时使用点运算符,而通过指针访问结构的成员时,则使用箭头运算符。
class 类名称
{
public :
共有成员 //可以是数据成员,也可以是成员函数
private:
私有成员 //可以是数据成员,也可以是成员函数
protected:
保护性成员 //可以是数据成员,也可以是成员函数
}; //分号不能省略
公有类型成员,是类与外部的接口,任何类外定义的对象或函数都可以访问公有类型数据和函数。
#include "iostream"
using namespace std;
class complex {
public:
float a, b;
void add(complex x)
{
a+=x.a; b+=x.b;
cout << a << "+" << b << "i\n";
}
void input(float x, float y)
{
a = x; b = y;
cout << a << "+" << b << "i\n";
}
};
int main() {
complex first, second;
cout << "input two complex:\n";
first.input(1, 2);
second.input(3, 4);
first.add(second);
cout << first.a << "," << first.b << "\n";
return 0;
}
私有类型成员,只允许本类中的函数访问,来自类外部的任何访问都是非法的。
如下图,我们将成员类型换成private,就不能在外部进行访问了
#include "iostream"
using namespace std;
class complex {
private:
float a, b;
void add(complex x)
{
a+=x.a; b+=x.b;
cout << a << "+" << b << "i\n";
}
void input(float x, float y)
{
a = x; b = y;
cout << a << "+" << b << "i\n";
}
};
int main() {
complex first, second;
cout << "input two complex:\n";
first.input(1, 2);
second.input(3, 4);
first.add(second);
cout << first.a << "," << first.b << "\n";
return 0;
}
受保护类型成员,可以被派生类对象访问,不能被用户代码(类外)访问。
#include "iostream"
using namespace std;
class complex {
protected:
float a, b;
public:
void add(complex x)
{
a+=x.a; b+=x.b;
cout << a << "+" << b << "i\n";
}
void input(float x, float y)
{
a = x; b = y;
cout << a << "+" << b << "i\n";
}
};
int main() {
complex first, second;
cout << "input two complex:\n";
first.input(1, 2);
second.input(3, 4);
first.add(second);
cout << first.a << "," << first.b << "\n";
return 0;
}
调用一个成员函数与调用普通函数的差异在于需要使用“.”或者“->”操作符指出调用所针对的对象。
eg:
Time EndTime;
EndTime.showTime();
Time *pt1=&EndTime;
pt1->setTime(12,23,26);
void main(
{
Time EndTime; //定义对象
Time *pt1=&EndTime; //声明指向该对象的指针
pt1->setTime(12,23,26); //通过指针设置成员函数
cout<< " the time is:\n";
pt1->showTime(); //通过指针调用成员函数
EndTime.showTime(); //通过对象调用成员函数
}
后面会继续更新,必过!!!