gpt4 book ai didi

c++ - 尝试声明构造函数时在输入末尾预期为 `{'

转载 作者:太空宇宙 更新时间:2023-11-04 15:24:00 25 4
gpt4 key购买 nike

尝试编译我的代码时,每次都会出现以下错误。这些是错误:

C:\...\main.cpp In file included from main.cpp
C:\...\triangle.h In constructor `trianglePlus::trianglePlus(double, double, double, char*)':
C:\...\triangle.h expected `{' at end of input
C:\...\Makefile.win [Build Error] [main.o] Error 1

这是我的程序的精简版。

三角形.h :

class triangle { 
double x;
double y;
double z;

public:
triangle(double a,double b,double c);
};
class trianglePlus: public triangle {
char * name;
public:
trianglePlus(double a,double b,double c,char * v):triangle(a,b,c);
};

删除评论部分时,它给我带来了更多错误。 main.cpp

#include <cstdlib>
#include <iostream>
#include <math.h>
#include "triangle.h"
using namespace std;

triangle::triangle(double a, double b, double c) {
x = a;
y = b;
z = c;
}

/*
trianglePlus::trianglePlus(double a,double b,double c,char * v):trijsturis(a,b,c) {
x = a;
y = b;
z = c;
name = new char[20];
strcpy(name,v);
}
*/

int main()
{
system("PAUSE");
return 0;
}

任何想法可能是错误的?

最佳答案

您的构造函数需要完全定义或仅声明。由于要指定初始化列表,因此需要定义完整的构造函数。最好像这样,在类定义中内联:

trianglePlus(double a, double b, double c, char * v)
: triangle(a,b,c)
, x(a)
, y(b)
, z(c)
{
}

或者,只需将声明放在头文件中,将定义放在源文件中:

trianglePlus(double a, double b, double c, char * v);

trianglePlus::trianglePlus(double a, double b, double c, char * v)
: triangle(a,b,c)
, x(a)
, y(b)
, z(c)
{
}

关于c++ - 尝试声明构造函数时在输入末尾预期为 `{',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13324687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com