gpt4 book ai didi

c++ - 请求 "..."中的成员 "..."属于非类类型 "..."

转载 作者:IT老高 更新时间:2023-10-28 22:27:57 25 4
gpt4 key购买 nike

我一直在寻找几个小时试图找出我做错了什么,并且我已经摆脱了我的大部分问题,但是当我尝试在 main() 中编译我的代码时 它出现了同样的错误消息:

request for member "..." in "..." which is of non-class type "..."

它会重复我尝试在 main() 中调用的所有函数。问题是什么?我不知道我的错误在哪里。

我在 macbook 上使用终端来编译代码。

这是我的主要功能:

//Program1.cpp
//Program1Math test function
#include "Program1Math.h"

int main()
{
//Create a Program1Math object
Program1Math myProgram1Math();

myProgram1Math.setNumber1();
myProgram1Math.setNumber2();

myProgram1Math.displayMultiple();
myProgram1Math.displaySine1();
myProgram1Math.displayTangent1();
myProgram1Math.displaySine2();
myProgram1Math.displayTangent2();
}

以下是该类的成员函数定义:

//Program1Math.cpp
//Program1Math member-function definitions.
#include <iostream>
#include <cmath>
#include "Program1Math.h"
using namespace std;

//constructor makes a Program1Math, adds an blank line
Program1Math::Program1Math()
{
cout << "/n";
}

//function to assign the first integer to its appropriate location
void Program1Math::setNumber1()
{
cout << "Please enter the first integer number /n";
int numberSpot;
cin >>numberSpot;
static_cast<double>(numberSpot);
number1 = numberSpot;
}

//function to assign the second integer to its appropriate location
void Program1Math::setNumber2()
{
cout << "Please enter the second integer number /n";
int numberSpot;
cin >>numberSpot;
static_cast<double>(numberSpot);
number2 = numberSpot;
}

//function to find the sine value for a specified number
void Program1Math::calculateSine( double inputNumber )
{
sineValue = sin( inputNumber );
}

//function to find the tangent value for a specified number
void Program1Math::calculateTangent( double inputNumber )
{
tangentValue = tan( inputNumber );
}

//function to determine if the user-inputted numbers are multiples of each other
void Program1Math::calculateModulus()
{
int number1Int = static_cast<int>(number1);
int number2Int = static_cast<int>(number2);
int modulusValue = number1Int % number2Int;
if ( modulusValue == 0 )
multiple = true;
else
multiple = false;
}

//function to display the whether the numbers are multiples or not
void Program1Math::displayMultiple()
{
if( multiple == true )
cout<< number1 << " is a multiple of " << number2 << "!/n";
else
cout<< number1 << "is not a multiple of " << number2 << "./n";
}

//function to display the sine value of the first number
void Program1Math::displaySine1()
{
calculateSine( number1 );
cout << "Sine(" << number1 << ") = " << sineValue << "/n";
}

//function to display the sine value of the second number
void Program1Math::displaySine2()
{
calculateSine( number2 );
cout << "Sine(" << number2 << ") = " << sineValue << "/n";
}

//function to display the tangent value of the first number
void Program1Math::displayTangent1()
{
calculateTangent( number1 );
cout << "Tan(" << number1 << ") = " << tangentValue << "/n";
}

//function to display the tangent value of the second number
void Program1Math::displayTangent2()
{
calculateTangent( number2 );
cout << "Tan(" << number2 << ") = " << tangentValue << "/n";
}

这是头文件:

#include <cmath>
using namespace std;

class Program1Math
{
public:
Program1Math();
void setNumber1();
void setNumber2();
void calculateSine( double );
void calculateTangent( double );
void calculateModulus();
void displayMultiple();
void displaySine1();
void displaySine2();
void displayTangent1();
void displayTangent2();
private:
double number1;
double number2;
double sineValue;
double tangentValue;
bool multiple;
};

最佳答案

Program1Math myProgram1Math(); 被解释为函数声明 myProgram1Math() 返回 Program1Math;

随便用

 Program1Math myProgram1Math;

仅在构造函数接受参数(没有默认参数)时使用 ()。

编辑:您必须编译构成您的程序的所有源 (.cpp) 文件。这将生成具有不同扩展名的同名目标文件(在 Windows 上这是 .obj ,对你来说是 .o)。

之后,所有这些 .o 文件必须与一些编译器提供的库链接到 getcher 以生成可执行程序。

关于c++ - 请求 "..."中的成员 "..."属于非类类型 "...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4846959/

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