| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9383 人关注过本帖
标题:C++ 编译错误undefined reference to ' ' 求破....
只看楼主 加入收藏
Mayuri
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:17 
C++ 编译错误undefined reference to ' ' 求破....
刚学C++,对类不是很熟悉
有道题大概是说什么求矩形的周长和面积,用类去做
我写了三个文件,一个.h,两个.cpp
但是编译时老是说undefined reference to ' ' 看了很久依然没有办法....求各位大神指教!
这是头文件
程序代码:
//Rectangle.h

#ifndef RECTANGLE_H
#define RECTANGLE_H
class Rectangle
{
public:
    Rectangle(float = 1,float = 1);
    
    void perimeter(float ,float );
    void area(float ,float );
    float getLength();
    float getWidth();
    void setLengthWidth(float ,float );
    
private:
    float length;
    float width ;
};

#endif



这是第一个cpp
程序代码:
// Rectangle.cpp

#include <iostream>
#include <stdexcept>
#include "Rectangle.h"
using namespace std;

Rectangle::Rectangle(float a,float b)
{
    setLengthWidth(a,b);
}

void Rectangle::perimeter(float a,float b)
{
    cout << "The perimeter of the rectangle is " << 2(a+b) << endl;
}

void Rectangle::area(float a,float b)
{
    cout << "The area of the rectangle is " << a*b << endl;
}

float Rectangle::getLength()
{
    return length;
}

float Rectangle::getWidth()
{
    return width;
}

void Rectangle::setLengthWidth(float a,float b)
{
    if((a>=0.0&&a<=20.0)&&(b>=0.0&&b<=20.0))
    {
        length = a;
        width = b;    
    }
    else 
    throw invalid_argument("The length or the width is out of range");
}



这是主函数的cpp
程序代码:
// RectangleClass.cpp

#include <iostream>
#include "Rectangle.h"
using namespace std;

int main()
{
    float a,b;
    cout << "Please enter the length and width for the rectangle : ";
    cin >> a >> b;
    Rectangle Calculate(a,b);
    Calculate.perimeter(Calculate.getLength(),Calculate.getWidth());
    Calculate.area(Calculate.getLength(),Calculate.getWidth());
        
    return 0;
}


在线等......
搜索更多相关主题的帖子: 办法 cpp undefined reference 
2013-04-03 17:46
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
哪行报的?
另外?你知道这句话是什么意思吗?

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-03 20:38
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
我没有直接新建一个类给你调试,直接全部在一个cpp中进行的,2(a+b)你这个表达式有错误吧!其它的没有什么问问题,也没遇到你所描述的

Maybe
2013-04-03 20:38
Mayuri
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 2楼 peach5460
    Rectangle Calculate(a,b);
    Calculate.perimeter(Calculate.getLength(),Calculate.getWidth());
    Calculate.area(Calculate.getLength(),Calculate.getWidth());


这三行报错了......

--------------------配置: mingw5 - CUI Debug, 编译器类型: MinGW--------------------

检查文件依赖性...
正在编译 C:\Users\Alien\Desktop\HW4\9.11\RectangleClass.cpp...
正在连接...
[Error] RectangleClass.cpp:12: undefined reference to `Rectangle::Rectangle(float, float)'
[Error] RectangleClass.cpp:13: undefined reference to `Rectangle::getWidth()'
[Error] RectangleClass.cpp:13: undefined reference to `Rectangle::getLength()'
[Error] RectangleClass.cpp:13: undefined reference to `Rectangle::perimeter(float, float)'
[Error] RectangleClass.cpp:14: undefined reference to `Rectangle::getWidth()'
[Error] RectangleClass.cpp:14: undefined reference to `Rectangle::getLength()'
[Error] RectangleClass.cpp:14: undefined reference to `Rectangle::area(float, float)'
[Error] collect2: ld returned 1 exit status

构建中止 RectangleClass: 8 个错误, 0 个警告


就是这样,调试了很久都不行啊,求继续指教!
2013-04-03 21:31
Mayuri
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 3楼 邓士林
这个呃,改正了是2*(a+b)
但依然报错,同样的错
2013-04-03 21:32
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:0 
#ifndef RECTANGLE_H
#define RECTANGLE_H
#endif
这个你是要干什么的? RECTANGLE_H这个是什么?
你知道#ifndef  #define  #endif这个是什么处吗?你这样可能使得这个类未被定义吧。

[ 本帖最后由 shmilyflf 于 2013-4-3 23:24 编辑 ]
2013-04-03 23:13
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:0 
同样 mingw5
除了个2(a+b)
没有报错啊

人生是一场错过 愿你别蹉跎
2013-04-03 23:35
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:5 
回复 6楼 shmilyflf
楼上不要吓人家啊 这个就是常规的头文件卫士 使用应该是没有问题的

人生是一场错过 愿你别蹉跎
2013-04-03 23:39
Mayuri
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 7楼 fanpengpeng
那你改正之后可以运行吗
2013-04-04 00:17
Mayuri
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 6楼 shmilyflf
就是为了防止重定义才用的......
2013-04-04 00:18
快速回复:C++ 编译错误undefined reference to ' ' 求破....
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063652 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved