成员函数和预期的主表达式错误

时间:2015-02-26 13:59:01

标签: c++

这是我的代码,我目前正在处理我自己的BigInt类,我遇到了getter和setter以及一些程序结构的问题。 我一直收到这两个错误:

prog.cpp: In function 'int main()':

prog.cpp:38:29: error: cannot call member function 'void bigInt::setString(std::string)' without object
  bigInt::setString(digString);                            
                   ^    
prog.cpp:39:28: error: expected primary-expression before 'void'
  cout << bigInt::getString(void);
                           ^

代码

//my bigInt class
#include <iostream>
#include <vector>
#include <string>
using namespace std;
//class, constructors
//overload operators methods
//add, subtract, multiply, divide
class bigInt{//class
    public:
        bigInt();
        ~bigInt();
        void setString(string dig);
        string getString(void);
        std::string digit;
        std::string digString;
    private: 
        std::vector<int> big1;
        std::vector<int> big2;

};
//constructors
bigInt::bigInt(void){
}
//deconstructor
bigInt::~bigInt(){

}
void bigInt::setString(string dig){
    digit= dig;
}
string bigInt::getString(){
    return digit;
}

int main(){
    string digString= "90867537465982736459087162745938";
    bigInt::setString(digString);
    cout << bigInt::getString(void);
}

提前致谢!

2 个答案:

答案 0 :(得分:0)

main中你会做类似的事情。

int main(){
    string digString= "90867537465982736459087162745938";
    bigInt my_int{};
    my_int.setString(digString);
    cout << my_int.getString();
}

您必须实际实例化bigInt对象,我在上面的示例中调用了my_int。然后,您可以从该对象调用方法setString()getString()

在没有实例调用它们的情况下,您可以调用的唯一类方法是static方法。

答案 1 :(得分:0)

您需要一个可以使用的对象。试试你的主要内容:

bigInt myInt;
myInt.setString(...);