c++ 类-关于C++ 类 编译出错问题

问题描述

关于C++ 类 编译出错问题

大家好,最近在努力学习C++,但是遇见了一些问题,很希望懂的人士帮我解答下,这对于你们很简单吧,嘿嘿,谢谢了
代码如下:

#include<iostream>
using namespace std;
class Box{
    public:
        double length;
        double heigth;
        double width;
        int d;
        Box();
    Box(double length1,double heigth1,double width1){
        length=length1;
        heigth=heigth1;
        width=width1;
    }
    double volume(){
        return length*heigth*width;
    }
};//要有分号哦!
int main(){
    Box firstBox(2.0,4.0,6.0);
    firstBox.d=2;
    cout<<endl
        <<firstBox.length<<"n"
        <<firstBox.heigth<<"n"
        <<firstBox.width<<"n"
        <<firstBox.d
        <<endl;
    cout<<firstBox.volume();

    Box smallBox;
    smallBox.length=10.0;
    smallBox.heigth=5.0;
    smallBox.width=4.0;
    cout<<endl;
    cout<<smallBox.length<<"n"
        <<smallBox.heigth<<"n"
        <<smallBox.width<<"n"
        <<smallBox.volume()
        <<endl;
    return 0;
}

在Dev_C++5.6.1上编译的,出现了如下:

C:UsersADMINI~1AppDataLocalTempccgxkOkf.o lei1.cpp:(.text+0x10f): undefined reference to `Box::Box()'
D:Dev-Cpp大二Ccollect2.exe [Error] ld returned 1 exit status

我在百度上搜了很多,但很不理解,希望各位帮忙解答下。谢谢了

解决方案

因为你编写的Box smallBox;需要使用到无参构造函数,但是你已经提供了一个带参数的构造函数,因此编译器将不会为你提供无参构造函数,即默认构造函数,你只需在类定义加上Box(){},即显式定义一个无参构造函数就可以了。
另外你原来代码中有个Box(),这个只是声明,没有定义,但是你Box smallBox;这个需要使用这个函数,但连接器找不到这个函数的入口,因此也会报错的。

解决方案二:

我好像找到错了,class Box里面有个默认的构造函数Box,所以只需将“Box()”改为“Box(){}”就好了 但是呢 我不知道为什么。。。。。

时间: 2024-10-22 11:25:24

c++ 类-关于C++ 类 编译出错问题的相关文章

如果子类的构造方法中既没有显示调用基类构造方法,而基类中又没有无参数的构造方法,则编译出错。

问题描述 如果子类的构造方法中既没有显示调用基类构造方法,而基类中又没有无参数的构造方法,则编译出错. class Person { private String name; private int age; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public String getName(){ return name; } pu

rt jar-求java大神帮忙,java使用MAVEN编译时提示找不到类,但是类是属于rt.jar的

问题描述 求java大神帮忙,java使用MAVEN编译时提示找不到类,但是类是属于rt.jar的 java 版本: 1.6.0_10-rc2 maven 版本: 3.0.4 maven编译插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <s

窗口类应用程序已经编译成功,为什么显示一直在连接,就是没有界面出来,是什么问题

问题描述 窗口类应用程序已经编译成功,为什么显示一直在连接,就是没有界面出来,是什么问题 #include<windows.h> #include<stdio.h> //声明窗口过程函数 LRESULT CALLBACK WinSunProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); //编写WinMain函数 int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE

spring mvc-webmagic出错 在爬虫类里实行插入语句出错 哪位大神帮帮我啊 谢谢

问题描述 webmagic出错 在爬虫类里实行插入语句出错 哪位大神帮帮我啊 谢谢 项目用的是SpringMvc 和 myBatis ,请求到controller后再service的实现类A里进行逻辑操作,A里查出爬虫类里需要的数据对象的列表,然后调用爬虫类,将A里的查的数据穿进去,并在爬虫类的process(Page page)方法里将爬出的数据插入数据库,问题就出在插入时报空指针,可我的确是有set进数据的 错误代码如图 求大神解救 谢谢 解决方案 在传入方法里debug看下,我觉得很容易找

在silverlight里自定义一个控件,在自定义控件类里面定义依赖属性出错。

问题描述 在silverlight里自定义一个控件,在自定义控件类里面定义依赖属性出错. 在silverlight里自定义一个控件ReplicationEventComboBox继承ComboBox,在ReplicationEventComboBox类里面定义依赖属性TextProperty. 其中ReplicationEventComboBox中 private TextBlock _text; 字段在方法OnApplyTemplate()中被赋值 var text = this.GetTem

service-Android Service类中调用NDK编译的库的问题

问题描述 Android Service类中调用NDK编译的库的问题 现碰到的问题如下: 在Java层写了一个类代码如下: public?class?MeiaPush?{ ????????public?native?int?meia_push_init?(); ????????public?native?int?meia_push_set_client_info?(String?cid,?String?pwd,?String?type,?String?token); ????????public

c++-封装的libcurl类在使用vector时出错

问题描述 封装的libcurl类在使用vector时出错 环境: 系统:Windows 8专业版(32位) IDE:VS 2013 curl库版本:libcurl-7.19.3-win32-ssl-msvc 运行时提示 0x61DE35F7 (curllib.dll) (curltest.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0xFEEEFF02 时发生访问冲突. #include "stdafx.h" #include "curl/curl.h

Dao和Service都用了基类,非通用类写在专属service出错,写在action正常

问题描述 大家帮我看看我Dao和Service都用了基类,都通用的还正常,非通用类写在专属service出错,写在action正常.BarepackageUploadAction调用BarepackageServiceImpl这个类的updatePhoto(StringphotoFileName,Integerid,IntegerphotoSn)就会报错,把这个函数的内容直接写到action里就正常.错误信息:org.hibernate.HibernateException:NoSessionf

ziparchive-PHP 采用zipArchive类压缩文件文件时出错?

问题描述 PHP 采用zipArchive类压缩文件文件时出错? <?php header("Content-type:text/html;charset=utf-8"); /** Created by PhpStorm. User: Administrator Date: 2015/9/1 Time: 10:24 */ $zip = new ZipArchive(); //首先实例化这个类 if ($zip->open('F:test.zip',ZIPARCHIVE::O