C++ 方法不起作用
C++ Method wont work
所以我创建了一个方法来启动加法、乘法等多项式的过程,但是,当尝试 运行 start() 时,编译器 运行s,但是框保持空白,即使它不应该。不太确定我做错了什么。
有什么想法吗?
这是我的代码。
这是我的 header
#ifndef _POLY_GUARD
#define _POLY_GUARD
#include <iostream>
using namespace std;
class Polynomial
{
public:
Polynomial(int coef, int exp);
void start();
friend ostream & operator << (ostream &out, const vector<int> &c);
friend istream & operator >> (istream &in, const Polynomial &c);
void addPolynomials();
void multiplyPolynomials();
void evaluatePolynomial();
int findCoefficient();
int findLeadingExponent();
};
#endif
这是源代码。
#include "Polynomial.h"
#include <utility>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void Polynomial::start()
{
int choice;
std::cout << "What do you wish to do?" << std::endl;
std::cout << "1. Add two polynomials" << std::endl;
std::cout << "2. Multiply two polynomials" << std::endl;
std::cout << "3. Evaluate one polynomial at a given value" << std::endl;
std::cout << "4. Find Coefficent for a given polynomial and given exponent" << std::endl;
std::cout << "5. Find the leading exponent for a given polynomial" << std::endl;
std::cout << "6. Exit " << std::endl;
std::cin >> choice;
if (choice < 1 || choice > 6)
{
do
{
std::cout << "Invalid entry: please reenter choice" << std::endl;
std::cin >> choice;
} while (choice < 1 || choice > 6);
}
if (choice == 1)
{
}
}
最后,这是我的主要内容
#include "Polynomial.h"
#include <string>
#include <vector>
#include <utility>
int main()
{
Polynomial start();
system("pause");
}
根据this page,可以在另一个函数中声明一个函数。
因此您的 main
函数声明了一个名为 start
的函数,该函数是 returns Polynomial
对象,并调用 system("pause")
,然后调用 returns。
尝试划分声明和调用方法start
:
Polynomial p;
p.start();
或
Polynomial(1, 2).start(); // pass valid parameters
阅读上面的评论,因为它们与下面的示例一样有用。
因此您有一个 class Polynomial
,您可以从中创建(实例化)该特定类型的对象。
class Polynomial {
public:
/// default constructor
Polynomial() = default;
/// constructor with your coef and exp parameters
/// when invoked it will use its arguments to initialize
/// the data members coef and exp.
Polynomial(int coef, int exp)
: coef(coef)
, exp(exp){};
/// your member function start()
void start();
private:
/// your private data members that
/// are initialized upon construction
/// when calling the appropriate constructor
int coef;
int exp;
};
在你的 main 函数中,正如其他人提到的,你可以构造一个类型为 Polynomial
的对象,将其命名为 app
或 whatever
:
int main()
{
/// app is your object of type Polynomial
/// its coef and exp are initialized
/// using your arguments 4 and 5 respectively.
Polynomial app(4, 5);
/// now you can call you member function
app.start();
return 0;
}
因为
Polynomial start();
是最令人头疼的解析。
所以我创建了一个方法来启动加法、乘法等多项式的过程,但是,当尝试 运行 start() 时,编译器 运行s,但是框保持空白,即使它不应该。不太确定我做错了什么。
有什么想法吗?
这是我的代码。
这是我的 header
#ifndef _POLY_GUARD
#define _POLY_GUARD
#include <iostream>
using namespace std;
class Polynomial
{
public:
Polynomial(int coef, int exp);
void start();
friend ostream & operator << (ostream &out, const vector<int> &c);
friend istream & operator >> (istream &in, const Polynomial &c);
void addPolynomials();
void multiplyPolynomials();
void evaluatePolynomial();
int findCoefficient();
int findLeadingExponent();
};
#endif
这是源代码。
#include "Polynomial.h"
#include <utility>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void Polynomial::start()
{
int choice;
std::cout << "What do you wish to do?" << std::endl;
std::cout << "1. Add two polynomials" << std::endl;
std::cout << "2. Multiply two polynomials" << std::endl;
std::cout << "3. Evaluate one polynomial at a given value" << std::endl;
std::cout << "4. Find Coefficent for a given polynomial and given exponent" << std::endl;
std::cout << "5. Find the leading exponent for a given polynomial" << std::endl;
std::cout << "6. Exit " << std::endl;
std::cin >> choice;
if (choice < 1 || choice > 6)
{
do
{
std::cout << "Invalid entry: please reenter choice" << std::endl;
std::cin >> choice;
} while (choice < 1 || choice > 6);
}
if (choice == 1)
{
}
}
最后,这是我的主要内容
#include "Polynomial.h"
#include <string>
#include <vector>
#include <utility>
int main()
{
Polynomial start();
system("pause");
}
根据this page,可以在另一个函数中声明一个函数。
因此您的 main
函数声明了一个名为 start
的函数,该函数是 returns Polynomial
对象,并调用 system("pause")
,然后调用 returns。
尝试划分声明和调用方法start
:
Polynomial p;
p.start();
或
Polynomial(1, 2).start(); // pass valid parameters
阅读上面的评论,因为它们与下面的示例一样有用。
因此您有一个 class Polynomial
,您可以从中创建(实例化)该特定类型的对象。
class Polynomial {
public:
/// default constructor
Polynomial() = default;
/// constructor with your coef and exp parameters
/// when invoked it will use its arguments to initialize
/// the data members coef and exp.
Polynomial(int coef, int exp)
: coef(coef)
, exp(exp){};
/// your member function start()
void start();
private:
/// your private data members that
/// are initialized upon construction
/// when calling the appropriate constructor
int coef;
int exp;
};
在你的 main 函数中,正如其他人提到的,你可以构造一个类型为 Polynomial
的对象,将其命名为 app
或 whatever
:
int main()
{
/// app is your object of type Polynomial
/// its coef and exp are initialized
/// using your arguments 4 and 5 respectively.
Polynomial app(4, 5);
/// now you can call you member function
app.start();
return 0;
}
因为
Polynomial start();
是最令人头疼的解析。