0

请解释此程序的错误消息..

#include <iostream>
using namespace std;
class copyConst
{

    private:
    int someVal;
    public:
    copyConst(const copyConst &objParam)
    {
        someVal = objParam.someVal;
    }
    copyConst()
    {
        someVal = 9;
    }
    copyConst& operator=(const copyConst &objParam)
    {
        if (this == &objParam)
            return *this;

        someVal = objParam.someVal;
        return *this;
        }
    };

int main(int argc, char **argv)
{
    copyConst obj1;
    copyConst obj2(obj1);
    copyConst obj3 = obj1;
    copyConst obj4;
    obj4 = obj1;


    return 0;
}

错误信息:

gcc -Wall -o "untitled" "untitled.cpp" (在目录:/home/rwik/Documents) untitled.cpp: 在函数'int main(int, char**)': untitled.cpp:53:12:警告:变量 'obj3' 已设置但未使用 [-Wunused-but-set-variable] /tmp/ccUIyRPg.o: In function __static_initialization_and_destruction_0(int, int)': untitled.cpp:(.text+0x8a): undefined reference to std::ios_base::Init::Init()' untitled.cpp:(.text+ 0x8f): 未定义引用 `std::ios_base::Init::~Init()' 编译失败。collect2: ld 返回 1 个退出状态

4

2 回答 2

1

使用 编译g++,而不是gcc. 你有 C++ 代码,而不是 C 代码。

它与类代码无关。

于 2012-05-19T07:48:11.047 回答
-1

有两种类型的警告消息。第二个是因为 gcc 中缺少链接标志:( gcc -lstdc++ -Wall -o "untitled" "untitled.cpp"或等效的g++ -Wall -o "untitled" "untitled.cpp.

关于未使用变量的第一个警告是因为obj3已声明但未在其他任何地方使用的变量。对于这种情况,我使用(void)obj3;语句来解决此类警告消息。

于 2012-05-19T08:21:06.600 回答