获取从C++中同一类中的构造函数调用的方法返回的值
Get the value that is returned from a method that is called from a constructor in the same class in C++
我有一个类,它的构造函数正在调用一个方法。这个方法返回了一个double,是否有可能在类之外获得方法的返回值?
考虑这样一个类:
SampleClass::SampleClass() {
SampleMethod(); //This method is returning a double
}
然后,我会从main中以某种方式获得该方法返回的值,并将其存储在double中。
int main(){
double val = SampleClass sample;
}
这是不可能的,就像我在代码剪辑中所做的那样,但我想用类似的方式来做。
我可以这样做:
SampleClass::SampleClass(double &val) {
val = SampleMethod(); //This method is returning a double
}
然后从main调用它,如下所示:
int main(){
double val{0}
SampleClass sample(val);
}
但这迫使我有一个需要参数的构造函数,但我希望有一个不接受任何参数的构造函数。这有可能实现吗?
谢谢!
构造函数不能返回值。
但是,如果您愿意,可以使用全局变量。
丑,但能胜任工作。
#include <iostream>
using namespace std;
double ret;
struct SampleClass{
SampleClass(){
ret=magicFunction();
}
double magicFunction(){
return 2.5;
}
};
int main() {
SampleClass sample;
std::cout<<ret;
return 0;
}
你能做的就是把它存放在其他地方。当我们在这里讨论创建对象时,一个显而易见的解决方案似乎是将结果存储在对象中。这当然会让你的物体变大。
class SampleClass {
public:
SampleClass()
{
result = SampleMethod();
}
double SampleMethod()
{
return 12.34;
}
double GetResult()
{
return result;
}
private:
double result;
}
所以你可以这样做:
int main() {
SampleClass sample;
double val = sample.GetResult();
}
C++构造函数不能返回值。被语言设计所阻止。
您不需要从构造函数返回一些东西。在C++中,您必须编写正确的类,该类可以复制并返回所需类型的值。简单样本:
class SampleClass
{
double _Value;
double method ()
{
_Value *= 10; // Do something
return _Value;
}
public:
double operator = (double _v)
{
_Value = _v; return _Value;
}
operator double ()
{
return method();
}
};
使用样品:
SampleClass a;
a = 1.1;
double b = a;
相关文章:
- 获取从C++中同一类中的构造函数调用的方法返回的值
- C++11:模板方法的模板函数调用无法编译?
- 使用回调函数从构造函数调用虚拟/派生方法的替代方法?
- 通过模板函数对未知类型调用方法
- C++:这是使用整数变量作为函数调用指针的正确方法吗
- C ++:如何在不创建对象的情况下在主函数中调用方法
- C++ std::线程调用方法,从对象原因到调用此类的析构函数
- 在 MySQL 连接器C++ API 中使用一个函数调用执行多个查询的正确方法是什么?
- 以下声明C++中调用的函数的方法是什么?
- 使用 emplace_back 避免移动构造函数调用的最佳方法?
- 如何从具有多个对象/字段的类中调用方法函数
- 简化静态成员函数调用的方法
- 在 C++ vs Java 中从构造函数调用被覆盖的方法
- 如何通过 MS Chakracore JavaScript 引擎调用C++函数或方法
- 从C++中的虚拟析构函数调用虚拟方法
- 子类中的方法不会被父类中的虚函数调用
- 默认参数允许构造函数调用私有方法
- 正在调用基方法,而不是从构造函数派生方法
- 复制构造函数调用方法
- 本机和托管c++之间的函数调用(方法)