c++ 如何实现,readonly

需求:
我要实现一个常量字段,只能赋值一次,赋值后不容许更改。
类似于c#的readonly或者java final

#include <iostream>


class  A{
public:
A(int machine_id):_machine_id(machine_id) {
    std::cout << "构造函数"  << std::endl;
}

int get_machine_id(){
    return _machine_id;
}


//int change_machine_id(int a){
 //   _machine_id = a; //这个是不允许的
//}

private:
    const int _machine_id;
};



using namespace std;

int main()
{
    A a(100);
    std::cout << a.get_machine_id() << std::endl;
    return 0;

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Qt C++ 中,同样可以使用样式表(QSS)来实现主题切换,具体方法如下: 1. 创建样式表:使用 Qt Designer 或手动创建一个样式表文件(.qss),其中包含您要应用于应用程序的各种样式和属性。 2. 加载样式表:在应用程序中加载样式表文件。可以使用 `QApplication` 或 `QWidget` 的 `setStyleSheet()` 方法来加载样式表。 3. 实现主题切换:您可以使用 `setStyleSheet()` 方法来动态更改应用程序的样式表,以实现主题切换。可以在应用程序中定义多个样式表,然后通过按钮或菜单等控件触发事件来切换样式表。 以下是一个简单的示例代码,演示了如何在 Qt C++ 应用程序中切换主题: ```c++ #include <QApplication> #include <QMainWindow> #include <QPushButton> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0) : QMainWindow(parent) { // 创建按钮 QPushButton *button = new QPushButton("切换主题", this); button->setGeometry(50, 50, 100, 50); // 为按钮添加事件处理程序 connect(button, &QPushButton::clicked, this, &MainWindow::toggleTheme); // 加载默认样式表 QFile file("default.qss"); file.open(QFile::ReadOnly); QString styleSheet = QLatin1String(file.readAll()); qApp->setStyleSheet(styleSheet); } public slots: void toggleTheme() { // 切换样式表 if (qApp->styleSheet().isEmpty()) { QFile file("dark.qss"); file.open(QFile::ReadOnly); QString styleSheet = QLatin1String(file.readAll()); qApp->setStyleSheet(styleSheet); } else { qApp->setStyleSheet(""); } } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow window; window.show(); return app.exec(); } ``` 在此示例代码中,我们创建了一个按钮,当用户单击该按钮时,将切换应用程序的主题。我们使用 `setStyleSheet()` 方法来加载默认样式表,并使用 `toggleTheme()` 方法来切换样式表。在 `toggleTheme()` 方法中,我们检查当前样式表是否为空,如果为空,则加载一个新的样式表(dark.qss),否则将样式表设置为空字符串。 需要注意的是,在 Qt C++ 中,样式表文件必须使用 `QLatin1String()` 函数将其内容转换为 `QString` 类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值