• 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:

  Quote
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
https://www.neowin.net/forum/topic/753786-c-classes-implementation-problem/
Share on other sites

5 answers to this question

Recommended Posts

  • 0

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

  Quote
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

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

    • No registered users viewing this page.
  • Posts

    • -- "So, how could the Trump team make such a mistake on something so politically important to them?" Because the Trump team didn't care enough about editing the embedded map on the website just like they didn't care enough about actually building a phone. They're just slapping Trump's name on some pre-built Chinese OEM Android phone and selling it to MAGA rubes. 🤣
    • Here in the UK we used to have a mobile network that would've been perfect for Trump. It was called ... Orange!
    • Trump's team takes down Trump Mobile coverage map that includes "Gulf of Mexico" by David Uzondu Image via Depositphotos.com When Donald Trump returned to office in January this year, one of the first things he did was sign an executive order to officially rename the Gulf of Mexico to the "Gulf of America". It was a signature move, but it seems his own team might have forgotten about it. The rollout for the new Trump Mobile service, a venture headed by his sons, is already facing issues with its pre-orders, and now has a whole new self-inflicted problem to deal with. A post from Travis Akers (@travisakers) has shown that the Trump Mobile official coverage map, intended to show potential customers their signal strength, prominently featured the name "Gulf of Mexico." It appears shortly after Akers's post went live, the Trump team took down the page, so if you visit trumpmobile.com/coverage, you would get a 404 error. Anyways, here's a screen recording of what the page looked like before the take down (double click to enlarge): So, how could the Trump team make such a mistake on something so politically important to them? From the recording, it looks like the coverage map is powered by Mapbox, a popular location platform for developers. Mapbox, by default, still uses "Gulf of Mexico" because its core map data is built on global sources like OpenStreetMap, which have not adopted the unilateral name change. Even though the official name is different in the US, these global datasets stick to the international consensus. Other tech companies, like Google, address this by changing their maps to display "Gulf of America" only for users in the US, a decision that annoyed the president of Mexico. The funny thing is, fixing this would have been pretty simple. Mapbox is quite flexible, and you can edit "natural features", including bodies of water. Here's how we did it (click to enlarge): The Trump Mobile coverage map has been offline for over five hours, as the Trump team presumably works to fix the issue and bring the page back online.
    • Maybe stop using that ###### once and for all? One can live withouth it. Anything META is cancer.
    • This also highlights the dangers of giving corporations unencrypted access to your documents / photos. It would appear this persons data has likely been scanned by Ai, which found something it didn't like, locking access to the account.
  • Recent Achievements

    • Week One Done
      rozermack875 earned a badge
      Week One Done
    • Week One Done
      oneworldtechnologies earned a badge
      Week One Done
    • Veteran
      matthiew went up a rank
      Veteran
    • Enthusiast
      Motoman26 went up a rank
      Enthusiast
    • Mentor
      M. Murcek went up a rank
      Mentor
  • Popular Contributors

    1. 1
      +primortal
      684
    2. 2
      ATLien_0
      266
    3. 3
      Michael Scrip
      194
    4. 4
      +FloatingFatMan
      177
    5. 5
      Steven P.
      140
  • Tell a friend

    Love Neowin? Tell a friend!