有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
Is there any way we can use a const variable defined in one function can be used by other function in the same program in c++
我们如何使用在一个函数中定义的const std::string变量,以便在同一程序的另一函数中使用。
int sample::convert()
{
fun()
{
//returns string;
}
const std::string sender = fun()
}
void sample::write()
{
//I want to use sender variable here like below
std::string var;
var = sender;
}
不,这是不可能的。
为什么不将sender
作为成员变量,并使sample
成为class
(如果它当前是namespace
(?
如果实际问题是你不知道如何定义常量成员变量,那就像你在函数本身中定义它一样:
class sample
{
const std::string sender = "sample";
// Other members...
};
有两种已知的方法。
首先,返回字符串以在某个地方使用它(这可能不是您想要的,但它会起作用(。
std::string sample::convert()
{
const std::string sender = "sample"
return sender;
}
void sample::write()
{
//I want to use sender variable here like below
std::string var;
var = sender();
}
或者,最好将此变量声明为类成员变量:
class sample {
std::string sender = "sample"; // if not it's going to be modified, then use 'const'
public:
...
}
我们需要在全局范围内声明一个char*。然后使用const_cast<char*>我们可以将常量字符串转换为char并进行赋值。
示例:in.h文件:
char * abc;
在.cc文件中:
func()
{
const std::string cde = "Hello";
//now to use this constant string in another function,we use const cast and
//assign it to abc like below
abc = const_cast <char *>(cde.c_str());
}
相关文章:
- static_assert在宏中,但也可以扩展到可以用作函数参数的东西
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 函数是否可以访问传递给main()的参数
- 为什么即使我调用参数化构造函数也会调用默认构造函数?
- 为什么即使调用了析构函数,C++11 中的分离线程也可以执行
- 如果 C 函数仍然可以间接执行(通过回调函数),那么将它声明为静态函数是否是一种不好的做法?
- 为什么即使直到最后才定义实际类型,也可以将依赖名称视为完整
- std::函数不起作用,但普通的旧函数指针可以 - 为什么?
- C++ 一个函数,可以根据接受的值返回两种类型之一
- 如何创建一个模板化函数,可以在任何具有字符串键的 std::map 上运行?
- 除了两个构造函数外,C++库导入也可以工作
- 一个类也可以有两个默认构造函数
- 即使在使用函数之前没有函数声明,C++ 程序也可以工作
- 为什么即使在对象被删除后我也可以访问成员函数
- 为使用函数对象而编写的类是否也可以使用lambda或std::函数类型?
- 为什么即使对象没有复制构造函数,也可以按值传递对象
- c++中的委托构造函数可以在函数体中调用,也可以在初始化列表中调用
- 为什么我们需要在运行时使用函数指针调用这些函数?我们也可以直接打电话给他们
- 带有模板的 c++ 析构函数:T 可以是指针,也可以不是指针
- 在c++中,当常量也可以工作时,编译器为什么选择非常量函数