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
最赞回答 / WORLD_CONNECTED
m_iLen不是指针,是一个基础数据类型,你可以理解它是一个在栈实例化的对象。给m_iLen对象赋值为len是科学的类比:Student stu;stu.name = "name";上面的stu的对象;Student *stu = new Student();(*stu).name = "name";stu->name = "name";上面的stu是指针,*stu是对象,,stu指向这个对象可以使用*号取出这个对象
2017-09-28
已采纳回答 / 许山山丶
当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。也就是说new成功的话返回值是一个指针,所以要用指针来接收。可以看一下原文。
2017-09-28
最新回答 / qq_胖胖中式小笼包_03672702
这节课讲的是深拷贝和浅拷贝,视频中出现了构造函数和拷贝构造函数,拷贝构造函数里调用了一个Array类的对象的引用作为形参,用于将一个对象里的内容完全拷贝到另一个对象里,说成调用“Array类 类型”应该是不对的,应该说是Arry类的一个对象
2017-09-27