我正在尝试使用类创建动态数组。在我的头文件中,我有以下代码:
#ifndef DYNAMICARRAY
#define DYNAMICARRAY
#include <iostream>
class Array
{
public:
Array(); // Constructor - Initialises the data members
~Array(); // Destructor - That deletes the memory allocated to the array
void addTings (float itemValue); // which adds new items to the end of the array
float getTings (int index); // which returns the item at the index
void size(); // which returns the number of items currently in the array
private:
int arraySize;
float *floatPointer = nullptr;
};
#endif // DYNAMICARRAY
在我的.cpp文件中,我有以下代码:
#include "DYNAMICARRAY.h"
Array::Array()
{
floatPointer = new float[arraySize];
}
Array::~Array()
{
delete[] floatPointer;
}
void Array::addTings (float itemValue); // Out-of-line declaration ERROR
{
std::cout << "How many items do you want to add to the array";
std::cin >> arraySize;
}
float Array::getTings (int index); // Out-of-line declaration ERROR
{
}
void Array::size()
{
}
我得到一个成员的外线声明必须是两行上的定义编译错误:
float Array::getTings (int index);
和
void Array::addTings (float itemValue);
有谁知道为什么?我以为我已经正确地将头文件链接到cpp文件,但显然没有?
答案 0 :(得分:11)
您应该删除cpp文件中的分号。
void Array::addTings (float itemValue);
应该是
void Array::addTings (float itemValue)
正确的代码是:
void Array::addTings (float itemValue) // Out-of-line declaration ERROR
{
std::cout << "How many items do you want to add to the array";
std::cin >> arraySize;
}
float Array::getTings (int index) // Out-of-line declaration ERROR
{
}
答案 1 :(得分:0)
摆脱函数定义中的分号。见下文
void Array::addTings (float itemValue);
{
}
float Array::getTings (int index);
{
}
void Array::addTings (float itemValue)
{
}
float Array::getTings (int index)
{
}