c++ 如何在类构造函数中将值设置为 extern const

问题描述 投票:0回答:1

我有一个在 .h 文件中定义的全局变量,我想在此类的构造函数中分配它,该怎么做?

我的.h

extern const char* myval;
namespace mysp {
    public:
        MyClass();
}

我的.cpp

const char* myval;     <===== not assign here
namespace mysp {
    MyClass::MyClass(string str) {
        myval = str;   <===== how to do this
    }
}

我想分配在此类的构造函数内的 .h 文件中定义的全局变量。

c++ constructor global-variables extern
1个回答
-1
投票

要从 MyClass 的构造函数中为全局变量 myval 赋值,您需要确保该变量已正确定义且可赋值。由于 myval 被声明为 const,因此如果您想在构造函数中重新分配它,则需要删除 const 限定符。

    extern char* myval;  // Remove `const` if you need to change the value later

namespace mysp {
    class MyClass {
    public:
        MyClass(const std::string& str);
    };
}


    char* myval;  // Define the variable here without `const` if you plan to reassign

namespace mysp {
    MyClass::MyClass(const std::string& str) {
        myval = new char[str.length() + 1];  // Allocate memory for myval
        std::strcpy(myval, str.c_str());     // Copy the string content
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.