> 文章列表 > C++程序设计—类与对象

C++程序设计—类与对象

C++程序设计—类与对象

目录

1、类和对象的概念

2、面向对象程序设计的特点

3、类和对象的区别

4、成员运行算符

(1)(.)点运算符

(2)(->)箭头运算符

5、类的声明形式

(1)public

(2) private

(3) protected

 6、成员函数调用中的目的对象


可以说这里才是C++的真正开始!

1、类和对象的概念

类是一种自定义数据类型,是对一类事物共同属性和行为的抽象。

对象是该类的某一特定实例,是具体的,占内存空间的。

可以把类当成是一种自定义数据类型,对象则是该数据类型定义的一个变量。

2、面向对象程序设计的特点

抽象;封装;继承;多态

3、类和对象的区别

类是对象的抽象, 不占用内存;而对象是类的具体实例, 占用存储空间。

4、成员运行算符

.(点)和 ->(箭头) 用于引用类、结构和共用体的成员

点运算符应用于实际的对象;箭头运算符与一个指向对象的指针一起使用。

假设有下面的结构:

struct Employee {char first_name[16];int  age;
} emp;

(1)(.)点运算符

strcpy(emp.first_name, "zara");

表示把值 "zara" 赋给对象 emp 的 first_name 成员:

(2)(->)箭头运算符

如果 p_emp 是一个指针,指向类型为 Employee 的对象,要把值 "zara" 赋给对象 emp 的 first_name 成员,则需要

strcpy(p_emp->first_name, "zara");

-> 称为箭头运算符,它是由一个减号加上一个大于号组成。

简而言之:访问结构的成员时使用点运算符,而通过指针访问结构的成员时,则使用箭头运算符。

5、类的声明形式

class 类名称
{
public :共有成员           //可以是数据成员,也可以是成员函数
private:私有成员          //可以是数据成员,也可以是成员函数
protected:保护性成员        //可以是数据成员,也可以是成员函数};                   //分号不能省略

(1)public

公有类型成员,是类与外部的接口,任何类外定义的对象或函数都可以访问公有类型数据和函数。

#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;
}

(2) private

 私有类型成员,只允许本类中的函数访问,来自类外部的任何访问都是非法的。

如下图,我们将成员类型换成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;
}

(3) protected

受保护类型成员,可以被派生类对象访问,不能被用户代码(类外)访问。

#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;
}

 6、成员函数调用中的目的对象

调用一个成员函数与调用普通函数的差异在于需要使用“.”或者“->”操作符指出调用所针对的对象。

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(); //通过对象调用成员函数
} 

后面会继续更新,必过!!!