C++空类默认产生6个类成员函数

1、缺省构造函数。

2、缺省拷贝构造函数。

3、 缺省析构函数。

4、缺省赋值运算符。

4、缺省取址运算符。

5、 缺省取址运算符 const。

class A
{
public:
	A(){}//缺省构造函数

	A(const A&){}//拷贝构造函数

	~A(){}//析构函数

	A&operator=(const A&){}//赋值运算符

	A*operator&(){}//取址运算符

	const A*operator&()const{}//取址运算符 const
};
时间: 2024-08-04 22:59:34

C++空类默认产生6个类成员函数的相关文章

重载类的new和delete运算符成员函数

重载类的new和delete运算符成员函数1. 调用new时,先分配内存,后调用构造函数.调用构造函数的行为由编译器控制.2. 调用delete时,先调用析构函数,后释放内存.调用析构函数的行为由编译器控制.重载这两个运算符函数的目的是为了控制内存的分配与释放.如果需要对某个类型频繁地创建和销毁大量的对象,new和delete运算过程可能会耗费过多的时间,并且会产生过多的内存碎片.这两个运算符函数的原型:void * operator new(size_t sz);void operator d

类默认生成的成员函数

类默认生成的六个成员函数 一.构造函数 我们知道,类的数据成员是不能在声明类的时候初始化的,因为类并不是一个实体,而是一种抽象的数据类型,并不占据存储空间.为了解决这个问题,C++提供了构造函数来处理对象的初始化. 1.构造函数的作用 构造函数是一种特殊的成员函数,与其他成员函数不同,构造函数是在对象被实例化的时候自动被调用的,而且只执行这一次,它不能被用户调用.构造函数没有this指针. 构造函数的名字是固定的,与类名相同,不能由用户任意命名,它没有类型,没有返回值. 构造函数的功能是由用户自

类的成员函数后面加const有什么用(c++常问问题六)

每个类的成员函数都默认传入this指针,成员函数后面加了const后该成员函数将不能修改该类的成员了 class cat { public: cat(){}; string getName() const { this->m_strName = “”;//错误,const this不允许修改成员 return this->m_strName; //正确,没修改 } protected: string m_strName; }

C++ Primer 学习笔记_15_类与数据抽象(1)_类的定义和声明

C++ Primer 学习笔记_15_类与数据抽象(1)_类的定义和声明 在C++中,用类来定义自己的抽象数据类型.通过定义类型来对应所要解决的问题中的各种概念,可以使我们更容易编写.调试和修改程序.可以使得自己定义的数据类型用起来与内置类型一样容易和直观. 看一下Sales_item类: class Sales_item { private: std::string isbn; unsigned units_sold; double revenue; public: double ave_pr

C++类的成员函数(在类外定义成员函数、inline成员函数)

类的成员函数(简称类函数)是函数的一种,它的用法和作用和前面介绍过的函数基本上是一样的,它也有返回值和函数类型,它与一般函数的区别只是:它是属于一个类的成员,出现在类体中.它可以被指定为private(私有的).public (公用的)或protected(受保护的). 在使用类函数时,要注意调用它的权限(它能否被调用)以及它的作用域(函数能使用什么范围中的数据和函数).例如私有的成员函数只能被本类中的其它成员函数所调用,而不能被类外调用.成员函数可以访问本类中任何成员(包括私有的和公用的),可

类的封装性和信息隐蔽—类声明和成员函数定义的分离

在面向对象的程序开发中,一般做法是将类的声明(其中包含成员函数的声明)放在指定的头文件中,用户如果想用该类,只要把有关的头文件包含进来即可,不必在程序中重复书写类的声明,以减少工作量,节省篇幅,提高编程的效率. 由于在头文件中包含了类的声明,因此在程序中就可以用该类来定义对象.由于在类体中包含了对成员函数的声明,在程序中就可以调用这些对象的公用成员函数.为了实现上一节所叙述的信息隐蔽,对类成员函数的定义一般不放在头文件中,而另外放在一个文件中. 例如,可以分别写两个文件: //student.h

C++:类的成员函数定义方式

1.成员函数的第一种定义方式:在类声明中只给出成员函数的原型,而将成员函数的定义 放在类的外部. 返回值类型 类名::成员函数名(参数表) {      函数体  } class Point{ public: void setpoint(int,int); //设置坐标点的成员函数setpoint的函数原型 int getx(); //取x坐标点的成员函数getx的函数原型 int gety(); //取y坐标点的成员函数gety的函数原型 private: int x,y; }; void P

程序实践:定义具有成员函数的类

现在从一个由GradeBook类和main函数组成的例子说起,此例是一系例循序渐进例子中的第一个,这些例子通过后续博文讲解,最终是一个功能众多的GradeBook类. 定义具有无参数的成员函数 这里,GradeBook类表示可供教师管理学生考试成绩的成绩簿,而在main函数创建了一个GradeBook对象.main函数使用这个对象和它的成员函数,在屏幕上显示一条欢迎教师进入成绩簿程序的信息. PS:关键字class后跟类名GradeBook.按照惯例,用户定义的类名字以大写字母开头,而且为了增强

类成员函数不能作为普通函数地址传递给普通函数指针,几种解决方案

代码如下 #include <iostream> using namespace std; class A { public: int i; public: void show() { cout << "哈哈" << endl; } }; void print(void(*p)()) { (*p)(); } int main() { A a; print(a.show); return 0; } 其中,print函数的形参为一个函数指针.在编程的时候