[英]c++ functions with math problems
我開始學習 c++ 並解決了這個問題,嘗試進行以下計算:place + (place / 10)² 如果 place = 90,它應該是 171。
#include <iostream>
#include <iomanip>
#include <cmath>
#include "TestFunction.h"
using namespace std;
int main() {
TestFunction test1 ("John", 90);
test1.getInfo();
}
這是 TestFunction 標頭
#include <iostream>
#include <string>
#include <iomanip>
class TestFunction {
public:
TestFunction(std::string userName, int userPlace) {
name = userName;
place = userPlace;
}
int getPlace() {
return place;
}
int getResult() {
return num1;
}
void getInfo() {
std::cout << "Using getPlace():" << getPlace() << std::endl;
std::cout << "Using getResult(): " << getResult() << std::endl;
std::cout << "Using num1: " << num1 << std::endl;
std::cout << "calculate here: " << getPlace() + pow(getPlace() / 10, 2) << std::endl;
}
private:
std::string name;
int place;
int num1 = place + pow(place / 10, 2);
};
並得到這個結果:
Using getPlace():90
Using getResult(): -2147483648
Using num1: -2147483648
calculate here: 171
我真的不知道在嘗試使用 getResult() 或 num1 時我錯過了什么,歡迎提供任何建議或簡單的解釋,謝謝。
您需要跟蹤計算完成的時間。
num1
的初始化在place
的初始化之前place
,這是不惜一切代價避免的。
您可以將該計算移動到構造函數中:
TestFunction(std::string userName, int userPlace) {
name = userName;
place = userPlace;
num1 = place + pow(place / 10, 2);
}
還有其他方法,但這對您來說可能是最容易獲得的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.