所有的代码应该做的就是创建一个类的实例并打印私有变量。我已经在这个站点上查看了一堆(超过20个) "Error C4430: missing type specifier“错误,但没有一个有帮助。
下面是类文件("Number.h"):
#ifndef NUMBER_H
#define NUMBER_H
#include <string>
template <typename T>
class Number {
private:
T myVar;
public:
Number(T consVariable);
~Number();
void setNumber(T newVar);
T getNumber();
bool isEqual(T check);
bool isBigger(T check);
bool isSmaller(T check);
};
template <typename T>
Number<T>::Number(T conVar) {
myVar = conVar;
}
template <typename T>
Number<T>::setNumber(T setVar) {
myVar = setVar;
}
template <typename T>
Number<T>::getNumber() {
return myVar;
}
template <typename T>
Number<T>::isEqual(T n) {
if (myVar == n)
return true;
else
return false;
}
template <typename T>
Number<T>::isBigger(T n)
{
if (myVar >= n)
return true;
else
return false;
}
template <typename T>
Number<T>::isSmaller(T n)
{
if (myVar <= n)
return true;
else
return false;
}
#endif以及错误:
number.h(31): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
number.h(36): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
number.h(44): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
number.h(53): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
number.h(62): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 发布于 2013-03-12 03:11:20
除了构造函数和析构函数之外,所有的函数定义都需要返回类型。例如,考虑setNumber
template <typename T>
Number<T>::setNumber(T setVar) {
myVar = setVar;
}这应该返回void
template <typename T>
void Number<T>::setNumber(T setVar) {
myVar = setVar;
}然后isEqual应该返回bool,诸如此类。
别忘了还要定义你的析构函数:
template <typename T>
Number<T>::~Number() { }然而,在这种情况下,您只需使用默认析构函数即可。
发布于 2013-03-12 03:11:01
您的成员函数定义没有返回类型。应指定与在相应声明中指定的返回类型相同的返回类型。
例如,由于您以这种方式声明setNumber():
void setNumber(T newVar);
// ^^^^它的定义应该是这样的(注意我添加了void返回类型):
template <typename T>
void Number<T>::setNumber(T setVar) {
// ^^^^
// Don't forget the return type!
myVar = setVar;
}对每个成员函数执行此操作后,类定义和成员函数定义将如下所示:
#include <string>
template <typename T>
class Number {
private:
T myVar;
public:
Number(T consVariable);
~Number();
void setNumber(T newVar);
T getNumber();
bool isEqual(T check);
bool isBigger(T check);
bool isSmaller(T check);
};
template <typename T>
Number<T>::Number(T conVar) {
myVar = conVar;
}
template <typename T>
void Number<T>::setNumber(T setVar) {
myVar = setVar;
}
template <typename T>
T Number<T>::getNumber() {
return myVar;
}
template <typename T>
bool Number<T>::isEqual(T n) {
if (myVar == n)
return true;
else
return false;
}
template <typename T>
bool Number<T>::isBigger(T n)
{
if (myVar >= n)
return true;
else
return false;
}
template <typename T>
bool Number<T>::isSmaller(T n)
{
if (myVar <= n)
return true;
else
return false;
}https://stackoverflow.com/questions/15346591
复制相似问题