如何初始化convert.gram?每当我在课程中声明“克”时,程序都会适当地响应。我试图把克放在构造函数中,但它不起作用。我也正在构建一切正确的吗?谢谢你的帮助!
代码:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include "math.h"
using namespace std;
struct grams{
grams();
float converter(float pounds);
float gram;
float pounds;
float answer;
};
float grams::converter(float pounds){
answer = pounds * gram;
return answer;
}
grams::grams(){
float convert.gram = 453.592;
}
int main(){
float PtC;
grams convert;
cout<<"Pound to Gram Converter \n";
cout<<"How Many Pounds Do You Want to Convert? \n";
cin>>PtC;
float converter = convert.converter(PtC);
cout<<"Answer = "<<converter<<endl;
return 0;
}
错误:
C:/Users/lisa/Desktop/codelight c++/time_of_for_loop/for_loop_time/for_loop_time/main.cpp:31:13: error: expected initializer before '.' token
答案 0 :(得分:1)
您需要做的只是设置gram
; convert
是grams
的一个实例,因此其字段将正确设置。
grams::grams(){
gram = 453.592;
}
但初始化类成员的更常规和高效的方法是使用成员初始化列表,如下所示:
grams::grams() : gram(453.592) {
}
另外,一些建议:因为你使用gram
作为常量,将它设置为常量而不是成员更有意义。您可以将其设置为静态成员(并更好地命名)
struct grams {
static const float GRAMS_PER_POUND = 453.592;
...
您根本没有使用会员pound
;你应该考虑删除它。存储answer
也没有多大意义,因为在convert
函数完成后您没有通过converter
使用它。