可以说这里才是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(); //通过对象调用成员函数 }
后面会继续更新,必过!!!