Hello experts,
I am a complete beginner in C++ (although I know C).
I am trying to compile the code below, and I get
the following error.
Can anyone explain to me my mistake?
Thanks!
PhilB
myprog2.cpp: In method `Line::Line (Point, Point)':
myprog2.cpp:32: no matching function for call to `Point::Point ()'
myprog2.cpp:12: candidates are: Point::Point (int, int)
myprog2.cpp:9: Point::Point (const Point &)
myprog2.cpp:32: no matching function for call to `Point::Point ()'
myprog2.cpp:12: candidates are: Point::Point (int, int)
myprog2.cpp:9: Point::Point (const Point &)
myprog2.cpp:32: no matching function for call to `Point::Point ()'
myprog2.cpp:12: candidates are: Point::Point (int, int)
myprog2.cpp:9: Point::Point (const Point &)
//------------------------
class Point
{
protected:
int x;
int y;
public:
Point::Point(in t, int);
};
Point::Point(in t initx, int inity)
{
x=initx;
y=inity;
return;
}
class Line:public Point
{
public:
Point start_point;
Point end_point;
public:
Line::Line(Poin t, Point);
};
Line::Line(Poin t initp1, Point initp2)
{
start_point=ini tp1;
end_point=initp 2;
return;
}
main()
{
Point p1(10,20);
Point p2(20,40);
Line l1(p1,p2);
}
//------------------------
Jul 22 '05
15 1933
"Gary Labowitz" <gl*******@comc ast.net> wrote in message
news:K9******** ************@co mcast.com... Please note it one of my top ten that a number of you objected to having
on the list.
To poster: Your Point constructor is protected, which means it can only be called by code of the Point class or one of its subclasses (Line).
No, you missed the public.
"Marko Becirevic" <ma************ *******@zg.tel. hr> wrote in message
news:br******** **@ls219.htnet. hr... //------------------------ class Point { protected: int x; int y; public: Point::Point(in t, int); };
not Point::Point(in t, int); but just Point(int, int);
same in Line class.
That is not the problem. The problem is that he has Points in his Line.
There is no way to construct those Points when he goes to create a Line in
his main program.
"Gary Labowitz" <gl*******@comc ast.net> wrote in message news:<K9******* *************@c omcast.com>... Please note it one of my top ten that a number of you objected to having on the list.
To poster: Your Point constructor is protected, which means it can only be called by code of the Point class or one of its subclasses (Line). You are calling it from main. When you create a Line object, C++ will automatically construct the Point inherited portion by calling a constructor for a Point using a default constructor. And there isn't one. In addition, I'd say your design is flawed: A Line is not a kind of Point so you should not be using an is-a design. Lines have Points which is a has-a design. This is one way it could look:
#include <iostream>
using namespace std;
class Linex; class Pointx { friend class Linex; int x, y; //coordinates public: Pointx (int x, int y):x(x), y(y){}; Pointx ( ){}; //This is the missing constructor
Hello Gary
Thank you for your reply; I just added the line
Pointx ( ){};
and it compiles with no error!
Thanks to all for sharing your expertise.
PhilB
On Tue, 16 Dec 2003 05:51:02 -0800, PhilB wrote: Hello experts, I am a complete beginner in C++ (although I know C). I am trying to compile the code below, and I get the following error. Can anyone explain to me my mistake? Thanks! PhilB
myprog2.cpp: In method `Line::Line (Point, Point)': myprog2.cpp:32: no matching function for call to `Point::Point ()' myprog2.cpp:12: candidates are: Point::Point (int, int) myprog2.cpp:9: Point::Point (const Point &) myprog2.cpp:32: no matching function for call to `Point::Point ()' myprog2.cpp:12: candidates are: Point::Point (int, int) myprog2.cpp:9: Point::Point (const Point &) myprog2.cpp:32: no matching function for call to `Point::Point ()' myprog2.cpp:12: candidates are: Point::Point (int, int) myprog2.cpp:9: Point::Point (const Point &)
//------------------------ class Point { protected: int x; int y; public: Point::Point(in t, int); };
Point::Point(in t initx, int inity) { x=initx; y=inity; return; }
class Line:public Point { public: Point start_point; Point end_point;
public: Line::Line(Poin t, Point); };
Line::Line(Poin t initp1, Point initp2) { start_point=ini tp1; end_point=initp 2; return; }
main() { Point p1(10,20); Point p2(20,40); Line l1(p1,p2); } //------------------------
The answer has been covered over and over, here so I will only include
my alternate implementation that doesn't require definition of the
default constructor
class Point
{
protected:
int x;
int y;
public:
Point(int, int);
};
Point::Point(in t initx, int inity)
{
x=initx;
y=inity;
return;
}
class Line
{
public:
Point* start_point;
Point* end_point;
public:
Line(Point*, Point*);
};
Line::Line(Poin t* initp1, Point* initp2)
{
start_point=ini tp1;
end_point=initp 2;
return;
}
main()
{
Point p1(10,20);
Point p2(20,40);
Line l1(&p1,&p2);
}
I removed the line is-a point relationship which makes little sence.
Additionally, I used pointers to avoid the calling of the default
constructor.
--Steve
Steven Green <st************ @verizon.net> wrote in message news:<pa******* *************** ******@verizon. net>... The answer has been covered over and over, here so I will only include my alternate implementation that doesn't require definition of the default constructor
class Point { protected: int x; int y; public: Point(int, int); };
Point::Point(in t initx, int inity) { x=initx; y=inity; return; }
class Line { public: Point* start_point; Point* end_point; public: Line(Point*, Point*); };
Line::Line(Poin t* initp1, Point* initp2) { start_point=ini tp1; end_point=initp 2; return; }
main() { Point p1(10,20); Point p2(20,40); Line l1(&p1,&p2); }
I removed the line is-a point relationship which makes little sence. Additionally, I used pointers to avoid the calling of the default constructor.
--Steve
Hi Steve,
Thanks a lot for your crystal-clear example,
and thanks for sharing your expertise.
PhilB
Steven Green <st************ @verizon.net> wrote in message news:<pa******* *************** ******@verizon. net>... class Line { public: Point* start_point; Point* end_point; public: Line(Point*, Point*); };
Line::Line(Poin t* initp1, Point* initp2) { start_point=ini tp1; end_point=initp 2; return; }
main() { Point p1(10,20); Point p2(20,40); Line l1(&p1,&p2); }
I removed the line is-a point relationship which makes little sence. Additionally, I used pointers to avoid the calling of the default constructor.
--Steve
Now, though, Line doesn't own its Points anymore ... in this example,
if you pass l1 as a return value or do anything that extends its
lifetime beyond p1 and p2, you'll have problems. Unless Points are
really expensive to create and/or copy, this may not be the best way
to do it.
My two cents at least,
Michael This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Judi Keplar |
last post by:
I am currently taking a course to learn Python and was looking for
some help. I need to write a Python statement to print a comma-
separated repetition of the word, "Spam", written 511 times ("Spam,
Spam, … Spam").
Can anybody help me get started? I am completely new to programming!
Thanks in advance!
|
by: Philip Mette |
last post by:
I am begginner at best so I hope someone that is better can help.
I have a stored procedure that updates a view that I wrote using 2
cursors.(Kind of a Inner Loop) I wrote it this way Because I couldn't
do it using reqular transact SQL.
The problem is that this procedure is taking longer and longer to run.
Up to 5 hours now! It is anaylizing about 30,000 records. I think
partly because we add new records every month.
The procedure...
|
by: Grrrbau |
last post by:
I'm a beginner.
I'm looking for a good C++ book.
Someone told me about Lafore's "Object-Oriented Programming in C++".
What do you think?
Grrrbau
|
by: BobJohnson |
last post by:
Just started learning C++ and I need some help with my homework, shouldn't
take long for people around here. I need to create a simple money
calculator but I don't know how to make the output numbers two decimal
places long like 10.01 I only know how to define numbers as int or double.
Do I use float?
Also, I'm using Visual Studio .NET is there anyway to keep the compiler on
the screen long enough to actually see what it's outputting. ...
|
by: ranger |
last post by:
Hi,
I'm a beginner with C++, studying on my own from a book and I've
encoutered quite some problems.. If possible, someone out there might
help me out..
The problem is the following.. I've tried to create a couple of string
class/functions.. and they do compile.. but when I run them.. windows
suddenly reports an error.. As I'm just a beginner in C++, with noone
around me to help.. I'd appreciate if someone might help me out!
| |
by: Simon Matthews |
last post by:
Hope someone can help an Access beginner!
I've just started keeping my surgical logbook on access and it's a
simple flat-file affair. I have created several queries that will
list cases performed at different hospitals and reports based on the
queries to print out the relavent details.
What I would like to do is have a summary sheet in the Report Footer
section that lists a grid of each type of procedure performed as well
as the...
|
by: newbie |
last post by:
Hi
I am using a toolkit written in c++ that consists of three parts
1) video captur
2) image processin
3) OpenGL wrappe
The video capture program only works with local hardware (for example usb web cam). Since I have to use a remote live camera with a fixed IP-address, I then have to write my own video capture program that replaces the original video library. I am a beginner in programming, so I really don't have a clue how to do...
|
by: hl |
last post by:
Hi,
I'm a beginner and need a little help with getting data back from a web
service.
I am using VB.Net and have added a web reference to a Wsdl that was
provided to me.
My reference.vb file that was generated has the following code at the end.
<System.Xml.Serialization.SoapTypeAttribute("Map",
|
by: fool |
last post by:
Dear group,
Given a string I have to print the permutation, using some
looping tricks. This is not a Home work problem. My best
try as beginner is:
#include<stdio.h>
#include<stdlib.h>
int main(void)
|
by: macmac |
last post by:
I'm new to this forum and I am in a beginner level with programming too. I posted this thing out hoping that somebody could help me out in making this program. I am working right now as a C++ developer well of course as a junior developer, I know fundamentals of C++ and a little knowledge on classes, I also have a little knowledge in networking. My problem right now is that the company is urging me to deliver a bot for D2 game, specifically a...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
| |
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
| |
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
|
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |