C语言实现对c++类的封装其实也就是用结构体作为c++类的属性,用全局函数(这个函数的入参是这个结构体指针和其他参数)作为类的方法或行为。
struct Time
{
int Hour;
int Min;
int Sec;
};
void SetTime(struct Time *time, int hour, int min, int sec)
{
time->Hour = hour;
time->Min = min;
time->Sec = sec;
}
void print(struct Time *time)
{
printf("%d:%d:%d\n", time->Hour, time->Min, time->Sec);
}
int main()
{
struct Time aa;
SetTime(&aa, 12, 45, 54);
print(&aa);
return 0;
}
上述C语言的代码和下面c++代码的作用是一个意思:
class Time
{
private:
int Hour;
int Min;
int Sec;
public:
void SetTime(int hour, int min, int sec);
void print();
};
void Time::SetTime(int hour, int min, int sec)
{
this->Hour = hour;
this->Min = min;
this->Sec = sec;
}
void Time::print()
{
cout << this->Hour << ":" << this->Min << ":" << this->Sec << endl;
}
int main()
{
Time time;
time.SetTime(12, 45, 57);
time.print();
return 0;
}