header file:
//floatArray.h
#ifndef FLOAT ARRAY_H
#define FLOAT ARRAY_H
class floatArray
{
public:
floatArray();
void print();
floatArray(int size);
floatArray(const floatArray& rhs);
~floatArray();
floatArray& operator=(const floatArray& rhs);
void resize(int newSize);
int size();
float& operator [](int i);
private:
float*mData;
int mSize;
};
#endif
implementation file:
//floatArray.cpp
#include"floatArray.h"
#include<iostream>
using namespace std;
floatArray::floatArray()
{
*mData=0.0f;
}
floatArray::floatArray(int size)
{
size=mSize;
}
floatArray::floatArray(const floatArray& rhs)
{
int len=rhs.mSize;
mData=new float[len];
for(int i=0;i<len;i++)
rhs.mData[i]=mData[i];
}
floatArray::~floatArray()
{
delete[] mData;
mData=0;
}
void floatArray::resize(int newSize)
{
mSize=newSize;
}
float& floatArray::operator[](int i)
{
return mData[i];
}
int floatArray::size()
{
return mSize;
}
floatArray& floatArray::operator=(const floatArray& rhs)
{
if(this==&rhs)
return *this;
int len=rhs.mSize;
delete[] mData;
mData=new float[len];
for(int i=0;i<len;i++)
mData[i]=rhs.mData[i];
return*this;
}
and finally main.cpp :
//main.cpp
#include<iostream>
#include"floatArray.h"
using namespace std;
void printFloatArray(floatArray& fa)
{
cout<<"{";
for(int i=0;i<fa.size();i++)
cout<<fa[i]<<" ";
cout<<"}"<<endl;
}
int main()
{
floatArray a;
a.resize(4);
a[0]=1.0f;
a[1]=2.0f;
a[2]=3.0f;
a[3]=4.0f;
cout<<"printing a:";
printFloatArray(a);
floatArray b(a);
cout<<"printing b:";
printFloatArray(B)/>;
floatArray c=b=a;
cout<<"printing c:";
printFloatArray(c);
a=a=a=a;
cout<<"printing a:";
printFloatArray(a);
}
problem is as soon as i compile it shows no error but following warnings
floatarray.h(2): warning C4067: unexpected tokens following preprocessor directive - expected a newline.
program do not execute saying floatArray.exe had stopped working.
is this a problem related to dynamic memory??

New Topic/Question
Reply



MultiQuote




|