1.C++的特点
封装 继承 多态
2.最简单的C++程序
#include<iostream>
using namespace std;
int main()
{
cout<<"This is a C++ program.\n";
return 0;
}
1)main必须为int型 最后需要return 0
2)注释 // or /* */
3) 输入输出流cin与>> cout 与<< 头文件iosrream
4) 命名空间std
3.包含类的C++程序(注意细节地方)
#include<iostream>
using namespace std;
class Student
{private:
int num;
int score;
public:
void setdata()
{cin>>num;
cin>>score;
}
void display()
{cout<<"num="<<num<<endl;
cout<<"score="<<score<<endl;
};
};
Student stu1,stu2;
int main()
{stu1.setdata();
stu2.setdata();
stu1.display();
stu2.display();
return 0;
}
4.函数声明
函数类型 函数名( 参数类型 参数名 );
函数重载(一物多用)
重载函数的参数个数或类型必须至少有其中之一不同
函数模板(模板声明)
template<typename T>; //模板声明,T为类型参数
T max(T a,T b,T c) //T做虚拟的类型名
{if(b>a) a=b;
if(c>a) a=c;
return a;
}
有默认参数的函数(默认的放参数最后面)
与函数的重载有冲突,不能同时使用
5.变量的引用(别名——共用存储单元)
int a;
int &b=a;
用别名代替指针
void swap(int &a,int &b)
6.作用域运算符( ::访问全局变量)
7.对类的理解
属性和行为 ——> 数据和函数
类代表的是一批对象的共性和特征
类是对象的抽象 对象是类的具体
对象=算法+数据结构
程序=(对象+对象+对象+……)+消息
8.在类体重写成员函数的声明,在类外进行函数的定义
class Student
{public:
void display(); //在类中声明
private:
int num;
string name;
char sex;
};
void Student::display() //在类的外面定义(注意格式)
{cout<<" "<<endl;
cout<<" "<<endl;
}
9.对象成员的引用
对象名.成员名
10.构造函数(处理对象的初始化)
不需要用户调用,与类同名,不具有任何类型
class Time
{ pulic:
Time() //定义构造函数,与类同名
{hour=0;
minute=0;
sec=0;
}
void set_time();
void show_time();
};
带参数的构造函数
构造函数名(类型1 形参1,类型2 形参2,……)
类名 对象名(实参1,实参2,……)
class Time
{ pulic:
Time(int,int,int) //声明带参数的构造函数
}time1,time2;
Time::Time(int h,int m,int s) //定义带参数的构造函数
{hour=h;
minute=m;
sec=s;
}
time1(06,30,00); //指定对象time1的初值
构造函数重载
使用默认参数的构造函数
11.析构函数(一个类只能有一个析构函数)
先构造的后析构,后构造的先析构
class Time
{ pulic:
Time(int,int,int) //构造函数
~Time() //析构函数
{ }
}time1,time2;
12.对象数组
13.对象指针
Time t1;
Time *pt;
pt=&t1;
数据类型名(类名::指针变量名)(参数列表);
指针变量名=&类名::成员函数名;
void(Time::*p)(); //指向函数的指针
p=&Time::get_time;
14.this指针(指向本类对象的指针,它的值是当前被调用的成员函数所在的对象的起始地址)