this
class Clock{
private:
int hour,minute,second;
public:
void setClock(int h,int m,int s);
};
void Clock::setClock(Clock *this,int h,int m,int s){
this->hour=h;
this->minute=m;
this->second=s;
}
Static
1,Static数据成员
static用来修饰类的成员,控制成员的存储方式。静态数据成员是该类所有对象共有的。静态数据成员只分配一次内存,供所有对象共用。
静态数据初始化格式:数据类型 类名::静态数据成员 = 值
int X::s = 0;
访问静态数据成员的方式:
类对象名.静态数据成员名
类类型名::静态数据成员名
//计算一组学生的总成绩和平均值
#include<iostream>
#include<cstring>
using namespace std;
class Student{
private:
char name[20];
int age;
float score;
public:
Student(char *n,int a,int s){
strcpy(name,n);
age = a;
score =s;
sum += score;
}
static float sum;
};
//对静态数据成员进行 初始化
float Student::sum = 0;
int main(){
Student stud[3] = {Student("zhang san",20,60),Student("Li si",19,70),Student("wang wu",18,78)};
float average;
average =Student::sum/3;
cout<<"sum="<<Student::sum<<"average="<<average<<endl;
return 0;
}
2,Static函数成员
Const
const用来定义常量,就是值不变的量,const定义常量必须在构造函数的初始化列表中进行初始化。
常成员函数:
#include<iostream>
using namespace std;
class Circle{
private:
double x,y;
double radius;
const double pi;//
public:
//构造函数
Circle(double x,double y,double radius,double pi):pi(pi){
this->x =x;
this->y = y;
this->radius = radius;
}
double getRadius(){
return radius;
}
//常成员函数
double area() const{
return pi*radius*radius;
}
};
int main(){
Circle c1(1.2,3.4,3,3.14);
cout<<c1.area();
return 0;
}
常成员函数既可以访问常数据成员也可以访问非常数据成员。
常对象
const Circle c1(1.2,3.4,3,3.14);
友元函数
普通函数作为类的友元函数