#include<iostream>
using namespace std;
class Temp
{
int x;
static int y;
//y = 4;
public:
Temp(int m = 0,int n = 90 )
{
x = m;
y = n; //完全可以这样写,但是你想一想,static定义的目的是什么?为的就是所有对象都可以使用
//而实际上要是这么定义的话,会把y的值设置为 90 这会改变定义 static类型 y 的初衷,完全失去了意义
}
/*
Temp()
{
x = 6;
y = 6; //一个类里面默认只能有一个默认构造函数
}
*/
void display()
{
cout<<x<<" "<<y<<endl;
}
};
int Temp::y = 30;
int main()
{
Temp t;
t.display();
//没有return 值
return 0;
}
#include<iostream>
using namespace std;
class Time
{
int h; //C++默认定义数据成员是私有的
int m;
int s;
public:
Time(int j=0,int k=0,int l=0):h(j),m(k),s(l) //默认值一定要放在右边 !!!!
{ //这个不是默认构造函数
//所以说这个类中没有默认构造函数,但是一个类中必须有一个默认构造函数
}
}
class Temp //C++默认继承方式是私有的 如果需要其他继承类型 则 class 子类: public 父类
{ //这根本就不是继承,就是内嵌调用
Time temp; //对于创建内嵌对象,如果没有显示调用构造函数,会默认调用time的构造函数
const int x; //C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的 C++ const 和 static 有什么区别?
int y;
public:
Temp(int m = 0,int n = 0) :x(m) //!!!!!这才是正确的赋值方法
{
//x = m; // 因为X是const类型,所以不能赋值
y = n;
}
void display()
{
cout<<x<<" "<<y<<endl;
}
};
int main()
{
Temp t;
t.display();
return 0;
}