C ++,Class:成员错误的外线声明?

时间:2014-11-20 13:20:44

标签: c++ arrays class compiler-errors declaration

我正在尝试使用类创建动态数组。在我的头文件中,我有以下代码:

#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文件,但显然没有?

2 个答案:

答案 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)
{
}