注册 登录
编程论坛 C++教室

继承与派生问题求助

zhang197771 发布于 2012-09-16 19:12, 468 次点击
#include<iostream.h>
class point
{
public:
    void initp(float xx=0,float yy=0)
{x=xx;y=yy;}
private:
    float x,y;
};   
class water:public point
    {
    public:
        void initr(float a=0,float b=0,float c=0)
{initp(a,b);m=c;}
    private:
        float m;
    };
int main()
{
    water f;
    f.initr(3,4,5);
    return 0;
}
55.obj : error LNK2005: _main already defined in 11.obj
Debug/11.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

按照书上一模一样的,为什么就是调试出错,请高手帮忙。
5 回复
#2
爱闹的娃2012-09-16 21:35
_main already defined in 11.obj????你看看这一句话,说的是这个函数在11里面已经定义了,你将它重新再建一次,建在不同的文件当中..........试试看....
#3
pangding2012-09-18 19:12
2楼说得是对的,用 ide 的话,一个工程里一般只能有一个入口程序。

楼主以后如果出现类似这样的问题,自己又排不出错,可以先试卷去百度一下错误号,比如 LNK2005 之类的,看看有没有收获。比来论坛问有效率。
#4
qunxingw2012-09-19 11:10
授人以鱼,不如授人以渔。方法是解决问题的钥匙
#5
liuhoukai2012-09-19 14:40
#6
lwbkfc2012-09-25 09:43
#include<iostream>
using namespace std;
class point
{
public:
    point(float xx=0,float yy=0)
    {
        x=xx;
        y=yy;
    }
protected:
    float x,y;
};   
class water:public point
{
    public:
        water(float a=0,float b=0,float c=0):point(a,b)
        {
            m=c;
            cout<<x<<' '<<y<<' '<<m<<endl;
        }
    private:
        float m;
   
};
int main()
{
    water f(3,4,5);
   
    return 0;
}
1