1、抽象:
抽象出公有特性,包括公有动作,公有数据。
2、类:类是具有相同属性和行为的一组对象的集合(变量和函数)
声明格式:
class 类名(Dog)
{
类体:(数据和函数成员)默认为私有成员,结构体默认为公有成员
}
3、类成员的访问权限:public ,private,protected
3.1函数成员的实现:
主要有两类:1、在直接申明函数成员时实现
2、在类的外部实现(内联inline 函数和普通函数)
#include<iostream>
using namespace std;
class Dog
{
private:
int age;
public:
int func(int a);
int func2(int c);
int func1(int b)//类内部实现的函数成员
{
return age = b;
}
};
inline int Dog::func(int a)//外部实现的内联函数
{
return age = a;
}
int Dog::func2(int c)//外部实现的普通函数
{
while(c<5)
{
c++;
}
return c;
}
int main()
{
Dog d1;
int k = d1.func(3);
int j = d1.func1(4);
int q = d1.func2(0);
cout<<"k= "<<k<<"
";
cout<<"j= "<<j<<"
";
cout<<"q= "<<q<<"
";
}
结果:
k= 3
j= 4
q=5
-------------------------------------------------------------------
4、对象:对象就是变量,是类的实例化---->用一个类描述一个对象(属性和动作(数据和函数))
类型 变量名
class Dog d1;或者去掉类的关键字 Dog d1;
4.1类成员的访问:
私有成员只能在类的私有函数成员内访问,(这里并没有规定是哪种权限的成员),类的对象不能再类的外部访问私有成员;
保护成员只能在类的私有函数成员内访问,(这里并没有规定是哪种权限的成员),类的对象不能再类的外部访问私有成员;
公有成员能在类的私有函数成员内访问,类的对象也能在类的外部访问私有成员。
与struct的区别:struct没有函数成员,并且全为公有权限;
类中的数据成员尽量初始化为私有成员(通过公有函数来来访问)
4.2数据成员的初始化:
通过类内的公有函数来进行初始化:如下例:
#include<iostream> class Rec { private: int longs; int height; public: int area(int a,int b) { longs = a; height = b; return longs*height; } }; using namespace std; int main() { Rec rec1; int sum; sum = rec1.area(3,4); cout<<"area = "<<sum<<" "; }