• 0

C++ Classes Implementation Problem


Question

I'm trying to implement the following code but I keep getting compiler errors. I'm using Dev-C++ default settings. Is it a compiler settings problem or code problem? Anyone have any ideas? Thanks :)

(Sorry I'm really noob at programming lol, any help is greatly appreciated.)

// File name: point.h

// include necessary libraries and definitions

#include <iostream>
#include <iomanip>
#include <string>
using namespace std;

#ifndef POINT
#define POINT

class Point
{
	  private: // declare private members
			  double x;
			  double y;
			  string label;

	  public: // declare public members
			 Point();
			 Point(double x, double y, string label);
			 double get_x()const;
			 double get_y()const;
			 string get_label()const;
			 double set_x(double x);			 
			 double set_y(double y);			 
			 string set_label(string label);			 
			 void print()const;
};
#endif

// File name: Point.cpp
#include "point.h"


// Default constructor 
Point::Point() 
:x(),y(),label()
{ 
 x = 0; 
 y = 0; 
 label = "BLANK";  
} 

Point::Point(double input_x, double input_y, string input_label) // constructor that sets the values for variables to be set up for input
:x(input_x), y(input_y), label(input_label)
{
			 x = input_x;
			 y = input_y;
			 label = input_label;
}

double Point::set_x(double user_x) // set the value of x
{
	   x = user_x;
	   return x;
}

double Point::set_y(double user_y) // set the value of y
{
	   y = user_y;
	   return y;
}

string Point::set_label(string user_label) // set the value for label
{
	   label = user_label;
	   return label;
}

double Point::get_x()const // get the X value
{
	   return x;
}

double Point::get_y()const // get the Y value
{
	   return y;
}

string Point::get_label()const // get the label value
{
	   return label;
}

void Point::print()const // let's print the final result
{
	 cout << "\n" << label << "(" << fixed << setprecision(1) << x << "," << fixed << setprecision(1) << y << ")" << endl;
}

#include "point.h"

int main(void)
{
  Point source;								 // default constructor called
  Point destination(6.2, 16.7, "Destination");  // constructor called

	source.print();   
	destination.print();

	source.set_x(45);
	destination.set_y(33.4);

	source.print();
	destination.print();

	cout << "The x coordinate of point source is: " 
	<< source.get_x() << endl;

	cout << "The y coordinate of point destination is: " 
		 << destination.get_y() << endl;

	cout << "The label of point source is: "  << source.get_label() << endl;
	source.set_label("SOURCE");

	cout << "The new label of point source is: "  << source.get_label()<< endl;	

	cout << "----- Program ends here -----" << endl;

	return 0;
}

Errors:

Compiler: Default compiler

Executing g++.exe...

g++.exe "D:\School\University Year 1\Engg 233\Lab 7\ex1\lab7_1.cpp" -o "D:\School\University Year 1\Engg 233\Lab 7\ex1\lab7_1.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x17f):lab7_1.cpp: undefined reference to `Point::Point()'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x1de):lab7_1.cpp: undefined reference to `Point::Point(double, double, std::string)'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x26e):lab7_1.cpp: undefined reference to `Point::print() const'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x279):lab7_1.cpp: undefined reference to `Point::print() const'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x28e):lab7_1.cpp: undefined reference to `Point::set_x(double)'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x2a5):lab7_1.cpp: undefined reference to `Point::set_y(double)'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x2b2):lab7_1.cpp: undefined reference to `Point::print() const'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x2bd):lab7_1.cpp: undefined reference to `Point::print() const'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x2c8):lab7_1.cpp: undefined reference to `Point::get_x() const'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x30f):lab7_1.cpp: undefined reference to `Point::get_y() const'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x35d):lab7_1.cpp: undefined reference to `Point::get_label() const'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x456):lab7_1.cpp: undefined reference to `Point::set_label(std::string)'

C:\Users\JONATH~1\AppData\Local\Temp/ccAddaaa.o(.text+0x501):lab7_1.cpp: undefined reference to `Point::get_label() const'

collect2: ld returned 1 exit status

Execution terminated

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

I've no problems compiling your code. From the error messages you get, it seems like Point.cpp isn't being compiled. It should probably be named point.cpp btw (capitalisation matters). Make sure you've correctly added it to your project.

Link to comment
Share on other sites

  • 0

Hey, thanks for your reply. Actually it's named correctly (My comment was wrong) but I have the following error for point.cpp:

Compiler: Default compiler

Executing g++.exe...

g++.exe "D:\School\University Year 1\Engg 233\Lab 7\ex1\point.cpp" -o "D:\School\University Year 1\Engg 233\Lab 7\ex1\point.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"

C:\Dev-Cpp\lib/libmingw32.a(main.o)(.text+0x106):main.c: undefined reference to `WinMain@16'

collect2: ld returned 1 exit status

Execution terminated

Link to comment
Share on other sites

  • 0

Update: Actually I added:

int main()
{
	return 0;
}

And point.cpp compiled in Dev C++ but my main program still reported the same errors :(

Link to comment
Share on other sites

  • 0

I have a feeling you have created a Windows Application project or something like that. Create a new empty or console application project, and add your files. It should compile.

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.