c++单实例
时间: 2023-07-05 20:15:31 浏览: 49
实现单实例的方法有很多种,以下是一种常见的C++实现方法:
```c++
class Singleton {
public:
// 获取单实例对象的静态方法
static Singleton& getInstance() {
static Singleton instance; // 静态局部变量只会初始化一次,保证单实例
return instance;
}
// 避免复制构造函数和赋值运算符函数被调用
Singleton(Singleton const&) = delete;
void operator=(Singleton const&) = delete;
private:
// 私有化构造函数和析构函数
Singleton() {}
~Singleton() {}
};
```
在上面的代码中,`getInstance()`方法返回一个单实例对象的引用,该引用是静态局部变量,保证只初始化一次,从而实现单实例。同时,为了避免复制构造函数和赋值运算符函数被调用,我们将它们删除。此外,构造函数和析构函数被私有化,保证该类只能在`getInstance()`方法中被实例化。
相关问题
c++ vector 实例
C++中的vector是一个动态数组,它可以根据需要自动调整大小。下面是一个使用vector的示例:
```cpp
#include <iostream>
#include <vector>
int main() {
// 创建一个空的vector
std::vector<int> numbers;
// 向vector中添加元素
numbers.push_back(10);
numbers.push_back(20);
numbers.push_back(30);
// 访问vector中的元素
std::cout << "第一个元素:" << numbers[0] << std::endl;
std::cout << "第二个元素:" << numbers[1] << std::endl;
std::cout << "第三个元素:" << numbers[2] << std::endl;
// 修改vector中的元素
numbers[1] = 50;
// 遍历vector中的元素
std::cout << "所有元素:";
for (int i = 0; i < numbers.size(); i++) {
std::cout << numbers[i] << " ";
}
std::cout << std::endl;
// 删除vector中的最后一个元素
numbers.pop_back();
// 检查vector是否为空
if (numbers.empty()) {
std::cout << "vector为空" << std::endl;
} else {
std::cout << "vector不为空" << std::endl;
}
return 0;
}
```
这个示例演示了如何创建一个空的vector,向其中添加元素,访问和修改元素,遍历所有元素,删除最后一个元素以及检查vector是否为空。
C++菜单实例
好的,以下是一个简单的 C++ 菜单实例,供您参考:
```c++
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
int choice;
do {
// 显示菜单选项
cout << "1. 选项一" << endl;
cout << "2. 选项二" << endl;
cout << "3. 选项三" << endl;
cout << "4. 退出" << endl;
cout << "请选择一个选项: ";
// 读取用户输入
cin >> choice;
// 处理用户输入
switch (choice) {
case 1:
cout << "您选择了选项一" << endl;
break;
case 2:
cout << "您选择了选项二" << endl;
break;
case 3:
cout << "您选择了选项三" << endl;
break;
case 4:
cout << "感谢使用本程序" << endl;
break;
default:
cout << "无效的选项,请重新选择" << endl;
break;
}
} while (choice != 4);
return 0;
}
```
该程序会显示一个简单的菜单,让用户选择其中的一个选项。程序会根据用户的选择执行相应的操作,直到用户选择退出为止。