operator的函数原型
时间: 2023-05-19 15:05:40 浏览: 41
operator的函数原型是:返回类型 operator 运算符 (参数列表)。其中,运算符可以是算术运算符、关系运算符、逻辑运算符等。例如,重载加法运算符的函数原型为:返回类型 operator+ (参数列表)。
相关问题
已知在一个类体中包含如下函数原型: Volume operator-(Volume)const;, 下列关于这个函数的叙述中,错误的是【 B 】 A. 这是运算符-的重载运算符函数 B. 这个函数所重载的运算符是一个一元运算符 C. 这是一个成员函数
答案是 B。
这个函数所重载的运算符是一个二元运算符,即减法运算符"-"。这是因为函数原型中定义了一个参数,即const修饰的Volume类型的对象,表示运算符的右操作数。因此,这个函数是一个二元运算符的重载运算符函数。
A. 这是运算符-的重载运算符函数,是正确的。
B. 这个函数所重载的运算符是一个二元运算符,不是一个一元运算符,因此这个叙述是错误的。
C. 这不是一个成员函数,因为函数原型中没有指定函数所属的类。虽然函数原型中使用了const修饰符,但是它只是表示函数不会修改对象的数据成员,而不是成员函数。这个函数可以定义为类的成员函数,也可以定义为类的友元函数。
C++ operator new
C++中的`operator new`是一个用于动态分配内存的函数。它的原型如下:
```c++
void* operator new(std::size_t size);```
其中,`std::size_t`是一个无符号整数类型,表示要分配的内存大小。`operator new`会在堆上分配一块大小为`size`的内存,并返回指向该内存块的指针。
如果分配失败,`operator new`会抛出一个`std::bad_alloc`异常。
需要注意的是,`operator new`只负责分配内存,不会调用构造函数初始化对象。如果需要在分配内存的同时调用构造函数,可以使用`placement new`。