C++ :: Class Function That Uses Instance Of Its Child Class As Argument

Mar 1, 2013

I am facing a real-life problem, it can be simplified as below:

#include <iostream>
using namespace std;
class B;
class A {
public:
void f1(A a) {}
void f2(B b) {}

[Code]...

There is no problem at all with the f1(), it compiles and executes without any problem. But f2() gives compilation error. How to solve this?

The error message is: error: 'b' has incomplete type This is just to define the function f2() in a class, that uses an instance of its child class as one of its arguments.

View 11 Replies


ADVERTISEMENT

C++ :: File IO Inside A Class - No Instance Of Overloaded Function Getline Matches Argument List

Jan 24, 2012

Hey I am trying to use the getline() function to read a line from a file. For some reason Visual Studio 2010 gives me the following error. "No instance of overloaded function "getline" matches the argument list". The piece of code that produces the error is in a class in a separate .h file and is executed as a method of the object. I'm almost certain it has something to do with either the compiler thinking I am calling another getline in a different namespace or my parameters for the function are incorrect. Here is the code:

Code:
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
class InsultGenerator

[Code] .....

View 1 Replies View Related

C++ :: Using Child Class As Parameter Of A Function In Its Parent Class

Aug 27, 2014

I am currently having an issue with a piece of code that I am writing in which I need to use a vector of a child class as a parameter in a function in the parent class. Below is an example of my code:

#include "child.h"
#include <vector>
class parent {
parent();
function(std::vector<child> children);
// rest of class here
}

When I do this my program doesn't compile. However if I try to forward declare, as shown in the following example, it once again refuses to compile:

#include <vector>
class child;
class parent{
parent();
function(std::vector<child> children);
// rest of class here
}

This time, it refuses to compile because it needs to know the full size of the class child in order to create the vector. How to being able to access the child is essential for my program, so what should I do?

View 3 Replies View Related

C++ :: Function Overloading In Child Class?

Jan 17, 2014

I am facing some problems while overloading base class functoin in child class. I have 2 programs as listed below.

Program 1 :

#include <iostream>
using namespace std;
class base
{

[Code].....

Compilation Errors:

child_overload.cpp: In function "int main()":
child_overload.cpp:27: error: no matching function for call to "child::func(const char [16])"
child_overload.cpp:17: note: candidates are: void child::func(double)

I thought as base class members are also as part of child class through "public" access specifier, it should access base class function, when funct() is called with a string. if I use "using base::func" in child, it works fine. But why I need that when base class memebers are part of child class?

View 2 Replies View Related

C++ ::  Passing Class Instance To Function

Jan 17, 2014

I know that it is possible to pass a class instance to a function, but in my experience, if said function changes any variables of the class, they don't actually get changed. For example, we have class object, that has a member int number = 5. Lets say we have two functions, func1() and func2, which are not members of class object. If we pass object to func1() which, lets say, increases number by 5 (so now number = 10), at the end of that function number still = 5.

Is there a way to bypass this and have functions alter class variables permanently?

I know that I can pass variables by reference, but, in my experience, such a thing does not work with vectors (which I am also dealing with), so simple passing the desired variables by reference won't work.

View 5 Replies View Related

C++ :: Argument Deduction Of Function And Class Template

Jun 20, 2013

When we use a function template, we use a function template like a regular function, for example,

Code:
template<class T>
void foo(T t1, T t2)
{
}
foo(1,3);

Based on the arguments passed to foo, the compiler can deduct the type T. But on the other hand, when we use a class template, we always need to specify the type, for example,

Code:
template<class T>
struct sum {
static void foo(T t1, T t2)
{
}
};
sum<int>::foo(1,3);

Here we can't call sum::foo(1,3), otherwise we get compiler errors. My question is why the compiler can't deduct the type based on the arguments passed to foo? In addition, if we call function template foo like this,

Code:
foo(1, '3');

Then we get compiler errors. We need to specify the type like foo<int>(1.'3'). Since '3' can be always treated as integer, why we need to specify the type here?

View 7 Replies View Related

C++ :: Instance Of Class A Vs Class B Derived From Class A

Jul 3, 2014

There are two ways to access the members of class A inside class B:

1) Making an instance of class A in class B
2) Deriving class B from class A

So what is the basic difference in both ways as we can do same kind of work with both ways?

View 1 Replies View Related

C++ :: Define A Class That Only Inherits From Parent Class And Takes One Argument

Jan 5, 2015

In the project I'm currently working on I define a class that only inherits from a parent class and takes one argument.

Does this class need to be defined in the header or source file? I read different answers around the internet.

Or is it better to always split definition and logica, even for something like an operator?

View 1 Replies View Related

C++ :: Passing A Function Pointer As Template Argument To A Class

Aug 15, 2012

I have in the past written code for templated functions where one function argument can be either a function pointer or a Functor. Works pretty straightforward.

Now I am in a situation where I am actually trying to pass a function pointer as template argument to a class. Unfortunately this does not work, I can pass the Functor class but not the function pointer. Below code illustrates the issue:

Code:
#include <string>
#include <iostream>
#include <sstream>
#include <cstdlib>
// For demonstration
const char * external_library_call() {
return "FFFF";

[Code] .....

The idea is to have the definition of the Record class simple and readable and have a maintainable way to add auto-conversion functions to the class. So the lines I commented out are the desirable way how I want my code to look. Unfortunately I could not come up with any way that was close to readable for solving this.

View 3 Replies View Related

C++ :: Bool Operator In Class - Function Call Missing Argument List

Aug 17, 2014

I'm having trouble understanding this error I'm getting in my copy constructor and my bool operator in my class methods file.

error C3867: 'Grid::isLegalMove': function call missing argument list; use '&Grid::isLegalMove' to create a pointer to member

grid.cpp
#include <iostream>
#include "Grid.h"
#include "DUPoint.h"
#include <vector>
#include <sstream>
using namespace std;
Grid::Grid() { }

[Code] .....

View 1 Replies View Related

Visual C++ :: Circular Buffer - No Instance Of Overload Function Matches Argument List

Nov 25, 2014

I'm having some issues with my code. For the produce function i am getting an error saying 'no instance of overload function produce() matches the argument list' and also for the lines buffer[head].data = message; buffer[head].time = current_time i get an error saying 'expression must have pointer to object type.

In the code i'm not sure if i passed the variables to the function correctly. I have attached the code .....

code produce.txt

View 14 Replies View Related

C++ :: Size Of Object Of Class Child?

Feb 5, 2014

hiclass Parent {
};
class Child : virtual public Parent {
};

What is the size of object of Class Child in following case?

View 17 Replies View Related

C/C++ :: How To Create Single Instance Of Child Exe

Nov 13, 2013

I have an MFC application(.exe) in which i am creating an pointer object to CComQIptr<chemst::IChems>myinfo and after this i have using cocreate instance i had created the object launching that object, so Where i am using that CComQIptr object.

I have been creating instance to that COM exe (child exe) and at the end of the function i am releasing that object (myinfo->release).i want to create single instance for it and i want to use them in different .cpp files and finally i want to kill the child exe. Even though i release the object it is still alive.(Visualising in Task manager whether the exe is still alive or not).

View 1 Replies View Related

C++ :: Why Would A Class Allocate An Instance Of Itself

Oct 4, 2014

I'm currently learning the Qt framework and doing my first tutorial. Straight away I saw something that baffled me:

notepad.h

Code: namespace Ui {
class Notepad;
}
class Notepad : public QMainWindow

[Code] ....

Note the ui pointer and the heap allocation in the class constructor; I can't wrap my head around why one would do this. What's going on here?

View 5 Replies View Related

C++ :: Declaring New Instance Of A Class

Nov 6, 2014

I am putting a instance o the Vehicle Class inside the constructor of the Calculate Class then calling it later. I get a warning saying the variable is not used and a error when I try to used the functions from the vehicle class saying use of undeclared identifier.

Code:
#include <iostream>
#include "Calculate.h"
#include "Vehicle.h"
#include <fstream>
Calculate::Calculate(){

[Code] ....

View 9 Replies View Related

C++ :: Vector Is Different For Every Class Instance

Feb 12, 2014

Okay so I have a class Student, which takes a number and a vector as a parameter for the constructor. Everything works well, until I output the values of the vector for every instance. The problem is that the same vector is being shared with EVERY instance I create, but I want it to be unique for every single one!

//Student.h
#ifndef __Grade_calculator__Student__
#define __Grade_calculator__Student__
#include <iostream>

[Code].....

View 1 Replies View Related

C++ ::  How To Have A Class Return Instance Of Itself

Nov 24, 2012

I was wondering if (in C++) you can instantiate a class (class foo) then have said class return the already instantiated object. (foo::instance())

In other words, can I have a class return it's-self via it's own methods? I want to be able to create a class (i.e. class foo) early in my program so it is already setup and ready to go. Then, farther down the line, I want to be able to call functions from that class without having to pass that object as an argument to my calling function. Can I do something like so:

MyClass::ReturnSelf()->foo();
or
MyClass::ReturnSelf().foo();

View 13 Replies View Related

C/C++ :: Creating New Instance Of A Class?

Mar 2, 2014

I have a background in c# and am very frustrated with c++. If I created a class in c# like so:

public class Memory{
int x = 0;
int y = 0;
int height = 0;
int width = 0;
string firstname = "Bob";
string lastame = "Chester";
}

and then created a new instance of this class from a separate class by doing:

public class Main{
Memory mem = new Memory();
}

I have raked the internet for a way to create a new instance of a class in c++ while keeping its default values and have come up empty handed.

View 13 Replies View Related

C++ :: Reflect Child Classes From Base Class

Nov 26, 2013

We want a solution in C++ that must be able to do the following:

Given a string of particular type, lets say 'A', we want to find all the types that derives from 'A'.

Instantiate new objects out of the types that are derived from 'A'.

E.g. Lets say we have a class, VehicleEntity. VehicleEntityhas child classes, PassangerCarEntity, TruckEntity, TrainEntity, BoatEntity.

We are unsure what vehicle entities there may be as the a library could be added containing more VehicleEntities. E.g. an AirplaneEntity thaterives from VehicleEntity could be added after deployment.

In the application, when a user wants to select a VehicleEntity, the user should be able to pick any of the entities deriving from VehicleEntity. This includes the PassangerCarEntity, TruckEntity, TrainEntity, BoatEntity and AirplaneEntity. The user selects an Entity, lets say AirplaneEntity, A new object of type AirplaneEntity must be instantiated.

The following is an concept example in C# of what we want to achieve in C++.

In C# the items for the dropdown list can be retrieved as follows:

Type vehicleEntityType = typeof(VehicleEntity);
List<Type> types = new List<Type>();
foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())

[Code] .....

We are aware that standard C++ does not contain any Metadata on its objects, and thus it is not possible without a workaround. It does not seem possible with RTTI and boost.Mirror.

View 7 Replies View Related

C++ :: Copying Purely Virtual Class Child

Oct 27, 2014

In short, this is what I have

class A{
A(){}
virtual void pure() = 0;
}

[Code] .....

I need a2 to be a deep copy of a1, but if I understand it correctly, then a2 should just be a pointer copy of a1. How do I make a2 be a different instance of B?

View 5 Replies View Related

C++ :: Cannot Create Struct That Contains Instance Of A Class

Sep 4, 2013

I'm trying to learn as much C++ as I can. I was writing a program that mixes linked lists and classes. There is the class "Obj" which only holds an integer called 'data' and the classic "struct node" structure for linked list, but this time the "node" structure will hold an instance of "Obj" Class and the next* pointer.

#include <iostream>
using namespace std;
class Obj {
private:
int data;
public:

[code]....

View 2 Replies View Related

C++ :: Finding A Specific Instance Of A Class

May 22, 2013

So I have a class that is like this:

class card {
public:
int id;
int val;
};
card card1;
card1.id = 1;
card1.val = 2;
card card2;
card2.id = 2;
card2.val = 45;

etc...

So my question is firstly, is there a better way to implement this? (a vector of classes or something maybe?) and how can I call up a specific instance of the class. For example, if I want the val of a specific instance of the class, how best can I do that?

View 3 Replies View Related

C++ :: Change Value Of Instance Variables From Another Class?

May 6, 2014

I'm trying to change the values of some instance variables in my Controller Class so that when the user inserts values into main class it changes for Controller.

class Controller {
public:
Controller();
~Controller();
double PCFreq;
__int64 CounterStart;

[Code] ....

The user should be able to choose which foo the want to use. So I create an object of controller in main like this

Controller* con = new Controller()

Now my issues is, when I take user input (an integer) and try to do this

con->choice1 = choice1;

only the object of con's choice1 is = to user input.

However back at the class for Controller, choice1 hasn't received a value.

I can't initialize through Controllers constructor because I get the user input through a switch statement and the range of con would only be as far as the case.

View 2 Replies View Related

C/C++ :: Allow User To Create A New Class Instance?

Dec 4, 2014

I am creating a program that allows a user to create multiple 'sequences' and multiple 'filters' and then apply a filter to a sequence.

Each sequence and filter is an array of values.

How do I go about allowing the user to create a 'new' sequence and then store the location so I can access it again later? Once they have created a new sequence they can go on to create another sequence and ten maybe a filter and then another sequence etc etc .. and then they can select sequence 1 and edit the values if they so wish.

They would be asked how many sample values for the sequence, and then I would create a sequence with that many values and an id (1,2,3,4...). They could then enter this id to view/edit the sequence.

The entering/editing values part I am fine with. I just don't know how to allow them to create multiple new instances of a class without using an array so something like..

sequenceClassName somearray[10];
int i;
*create a new array*
somearray[i].create_class(how_many_samples)
i++ //so next sequence they create is 2,3,4.. etc

- this then calls the member function that creates an array using 'sample_values = new float[how_many_samples]' and the user can input their data and edit it whenever by entering the id which will correspond to the somearray[i].

However that approach only allows them to enter a maximum of 11 sequences. It all depends on how big I make that initial array and it just seems like the wrong way to do it.

( how to interact with them, just how to create multiple classes and recall them later to access the data!)

View 2 Replies View Related

C++ ::  basic Polymorphism - Parent / Child Class Based Program

Oct 19, 2014

I am making a very basic parent/child class based program that shows polymorphism. It does not compile due to a few syntax errors reading "function call missing argument list. Lines 76 and 77, 81 and 82, and 86 and 87.

#include<iostream>
using namespace std;
class people {
public:
virtual void height(double h) = 0;
virtual void weight(double w) = 0;

[Code] ....

View 4 Replies View Related

C# :: Abstract Class Provide Functionality Without Affecting Child Classes?

Mar 6, 2014

The abstract class can provide more functionality without affecting child classes.If we add any method to the interface ,then will it affect all the child classes ?

View 2 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved