0

当我在 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);
4

2 回答 2

0

如果convertToHSL未声明它在 main() 上是未知的:在所有其他函数下方的文件末尾替换 main()。

于 2013-04-04T10:38:13.177 回答
0

在您调用convertToHSL(in main) 时,您的编译器根本不知道它存在,因为它还没有“看到”它(它还没有被声明)。

所以为了能够从 调用这个函数main,要么移动convertHSL上面 main 的定义,或者至少在 main 上面预先声明它(不定义它)。或者,如果要从其他文件中使用它,也将其声明放入头文件中(其定义可能放入单独的源文件中,或者inline直接在头文件中使用说明符)。

但是,如果这一切并不能告诉您太多,您应该更深入地研究 C++ 的基础知识。

于 2013-04-04T10:38:37.170 回答