c++ 没有构造函数的类
时间: 2023-08-13 09:02:22 浏览: 96
在 C++ 中,如果一个类没有显式地定义构造函数,则编译器会生成一个默认构造函数。如果你想要一个类没有构造函数,可以使用以下两种方法来实现:
1. 将构造函数声明为 `private` 或 `protected`,这样外部就无法访问。例如:
```c++
class MyClass {
private:
MyClass() {}; // 将构造函数声明为 private
};
```
2. 将类声明为 `struct`,因为 `struct` 默认的访问权限是 `public`,所以即使没有定义构造函数,也可以创建对象。例如:
```c++
struct MyStruct {
int x;
double y;
};
int main() {
MyStruct s;
s.x = 10;
s.y = 3.14;
return 0;
}
```
需要注意的是,如果你不定义构造函数,编译器会自动生成一个默认构造函数,如果你想要禁用默认构造函数,可以将其声明为 `private`,或者将默认构造函数定义为 `delete`。例如:
```c++
class MyClass {
public:
MyClass(int x) : x_(x) {};
MyClass() = delete; // 禁用默认构造函数
private:
int x_;
};
```
上面的代码中,我们定义了一个带参数的构造函数,同时将默认构造函数定义为 `delete`,这样就禁用了默认构造函数。