【发布时间】:2018-07-04 04:37:23
【问题描述】:
我今天有一个关于访问其值是在重载构造函数期间创建的变量的问题。我的函数返回一个变量,以 i (int) 或 ch (char) 开头。
我正在尝试使用像 std::cout
void vCalcNum();
char chGetUserOperation();
int iGetUserNum1();
int iGetUserNum2();
void vTestFunction();
FCalc FCalculate;
int main()
{
vCalcNum();
//Overloaded constructor (Int, Int, Char) Each function returns variable
FCalc FCalc(iGetUserNum2(), iGetUserNum1(), chGetUserOperation());
std::cout << FCalc.GetUserNum1(); //cout prints proper value to console
sayUserOperation();
return 0;
}
void sayUserOperation()
{
std::cout << FCalc.GetUserOperation();
//This is where I am having trouble reffrencing GetUserOperation.
// Class and getters are located in another file - can update if code is
//needed I have tried variants such as FCalculate.GetUserOperation()
//which returns nothing
}
//Edit to add FCalc.h source code
class FCalc
{
public:
FCalc(); //constructor
FCalc(int, int, char); //overlaoded constructor
~FCalc(); //destructor
char GetUserOperation() const;
int GetUserNum1() const;
int GetUserNum2() const;
private:
int NewUserNum1;
int NewUserNum2;
char NewUserOperation;
};
//edited to add FCalc.cpp source code
#pragma once
#include "FCalc.h"
#include <iostream>
#include <iomanip>
#include <string>
char FCalc::GetUserOperation() const {return NewUserOperation;}
int FCalc::GetUserNum1() const { return NewUserNum1;}
int FCalc::GetUserNum2() const { return NewUserNum2;}
FCalc::FCalc()
{
int UserNum1 = 0;
int UserNum2 = 0;
char UserOperation;
}
FCalc::FCalc(int UserNum2, int UserNum1, char UserOperation)
{
NewUserNum1 = UserNum1;
NewUserNum2 = UserNum2;
NewUserOperation = UserOperation;
}
FCalc::~FCalc() {}
【问题讨论】:
-
请提供
FCalc类的代码。 -
main声明了一个名为FCalc的变量。sayUserOperation没有。因此,它当然无法调用从未声明过的名称上的方法。 -
@BlakeLanders,请将其编辑到问题中。这是问题的重要组成部分。
-
已编辑帖子以包括 FCalc.h 和 FCalc.cpp 源代码更远 - 对缺乏高质量的格式表示歉意。我是新来的:)
-
我觉得你很困惑,还没有掌握c++的一些基本概念。无论如何,一开始都不容易。我可以看到您正在尝试调用
FCalc.GetUserOperation(),但FCalc(变量不是类)仅作用于 main,因此在 main 之外您无法访问该变量。为了解决这个通过Fcalc(请调用变量类似fcalc)到sayUserOperation作为参数,然后你可以访问实例。
标签: c++ function constructor