我在main方法中调用convertToHSL(c1)时收到错误标识符。我不明白我的代码是什么问题。请帮忙。我的代码如下:
#include "stdafx.h"
#include "q3.h"
#include <cmath>
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char* argv[])
{
Color c1(1,1,1);
HSL h=convertToHSL(c1);
getchar();
getchar();
return 0;
}
Color::Color(){}
Color::Color(float r,float g,float b){
this->r=r;
this->g=g;
this->b=b;
}
Color::~Color(void){}
Color Color::operator+(Color c) {
return Color(r*c.r,g*c.g,b*c.b);
}
Color Color::operator*(float s) {
return Color(s*r,s*g,s*b);
}
HSL::HSL() {}
HSL::HSL(float h,float s,float l) {
this->h=h;
this->s=s;
this->l=l;
}
HSL::~HSL(void){}
HSL convertToHSL(Color const& c) {
return HSL(0,0,0);
答案 0 :(得分:0)
如果未声明convertToHSL
,则在main()上未知:在所有其他函数下面的文件末尾替换main()。
答案 1 :(得分:0)
在您调用convertToHSL
(在main
中)时,您的编译器根本不知道它存在,因为它还没有“看到”(尚未宣布。)
因此,为了能够从main
调用此函数,可以将convertHSL
的定义移到main之上,或者至少在main之上预先声明它(不定义它)。或者,如果要从其他文件中使用它,也可以将其声明放入头文件中(并且可以将其定义为单独的源文件或直接在头文件中使用inline
说明符)。
但如果所有这些都没有告诉你多少,你应该深入研究C ++的基础知识。