作为面向对象的语言,C++提供了使用对象以及定义对象额工具,此工具叫做类。
类定义:
class spreadsheetcell
{
public:
void setvalue(double invalue);
double getvalue() const;
protected:
double mvalue;
};
注意点:1、类定义是一条C++语句,因此必须用分号结束。如果类定义是不使用分号,编译器会给出几个错误,这些错误十分模糊,似乎与分号毫无关系。
2、为了遵循const-sorrectness原则,最好将不改变对象的任何数据成员的成员函数声明为const.相对于非const成员函数“修改器”,这些函数称为“检测器”。
3、多数数据成员都应该是protected.
定义方法:
#include <spreadsheetcell.h>
void spreadsheetcell::getvalue() const
{
return mvalue;
}
通常类定义在头文件中,方法定义在包含头文件的源文件中。
this指针用来指当前类的对象;
构造函数:
如果声明的类没有构造函数,编译器会自动生成一个没有参数的构造函数。类所有的对象都可以调用编译器生成的默认构造函数。但是当声明了一个有参数的构造函数,编译器则不会自动生成一个没有参数的构造函数。在此默认构造函数只是无参数的构造函数,而不是无论如何都会自动生成的构造函数。
默认构造函数可以显示生成和删除:
myclass()=default;
myclass()=delete;
按引用传递对象
当向函数或者方法传递对象时,为了避免复制对象,可以让函数或者方法采用对象的引用作为参数。当传递某个对象的引用时, 使用对象引用的函数或方法可以修改原始对象,可以将对象声明为const以排除这种可能。
spreadsheetcell(const string & initvalube);