class Coordinate
{
public:
Coordinate()
{
}
void printInfo()
{
cout<<"("<<m_iX<<","<<m_iY<<")"<<endl;
}
public:
int m_iX;
int m_iY;
};
int main(void)
{
Coordinate coorArr[2]={Coordinate(),Coordinate()};
for(int i = 0; i < 2; i++)
{
coorArr[i].printInfo();
}
return 0;
}
{
public:
Coordinate()
{
}
void printInfo()
{
cout<<"("<<m_iX<<","<<m_iY<<")"<<endl;
}
public:
int m_iX;
int m_iY;
};
int main(void)
{
Coordinate coorArr[2]={Coordinate(),Coordinate()};
for(int i = 0; i < 2; i++)
{
coorArr[i].printInfo();
}
return 0;
}
关于上节课知识点的补充:这里的const放在后面和java的final作用就很相似了,指针指向的位置不可变,也就是指向的对象本身不能变,但是指向的对象的内容(数据成员等)却是可以变化的!
2017-10-07
3、修饰对象(对象指针,对象引用):final修饰的对象是不可变的,但是这个不可变指对象本身不能被改变,对象的内容却可以改变。
而const修饰类对象表示该对象为常量对象,其中的任何成员都不能被修改(这和java有所区别)。对于对象指针和对象引用也是一样。
const修饰的对象,该对象的任何非const成员函数都不能被调用,因为任何非const成员函数会有修改成员变量的企图。
=========
其他更深入的大家可以自己查阅资料!
而const修饰类对象表示该对象为常量对象,其中的任何成员都不能被修改(这和java有所区别)。对于对象指针和对象引用也是一样。
const修饰的对象,该对象的任何非const成员函数都不能被调用,因为任何非const成员函数会有修改成员变量的企图。
=========
其他更深入的大家可以自己查阅资料!
2017-10-07
const与final:
1、修饰变量:final修饰的变量不可变,但是声明时不必初始化,可以在编译时刻初始化,也可以在运行时刻初始化,
甚至可以在构造函数中初始化。而const修饰的变量也不可变,修饰的成员变量叫做成员常量,只能在初始化列表中赋值。
2、修饰成员函数:final修饰的成员函数是不能被重载的,比如private修饰的函数默认是final的。const修饰类的成员函数,
则该成员函数不能修改对象的成员变量,不能调用类中任何非const成员函数。同名的const修饰的函数和普通函数则是互为重载的关系。
此外,const成员函数能够访问对象的const成员,而其他成员函数不可以。
1、修饰变量:final修饰的变量不可变,但是声明时不必初始化,可以在编译时刻初始化,也可以在运行时刻初始化,
甚至可以在构造函数中初始化。而const修饰的变量也不可变,修饰的成员变量叫做成员常量,只能在初始化列表中赋值。
2、修饰成员函数:final修饰的成员函数是不能被重载的,比如private修饰的函数默认是final的。const修饰类的成员函数,
则该成员函数不能修改对象的成员变量,不能调用类中任何非const成员函数。同名的const修饰的函数和普通函数则是互为重载的关系。
此外,const成员函数能够访问对象的const成员,而其他成员函数不可以。
2017-10-07