C++ :: Constructor Exercise - Creating A Class Called Screen With Some Specifications
Feb 15, 2014
This exercise is from C++ primer 5th edition. I have not understood everything about constructors, mainly about how they function.
Work prior to the exercise was creating a class called screen with some specifications. This is the class:
Code:
class screen{
public:
using pos = string::size_type;
screen() = default;
private:
pos height = 0;
pos width = 0;
pos cursor = 0;
string contents;
};
The exercise goes as follows:
Exercise 7.24: Give your Screen class three constructors: a defaultconstructor; a constructor that takes values for height and width and initializes the contents to hold the given number of blanks; and a constructor that takes values for height, width, and a character to use as the contents of the screen.
Giving the screen a default constructor was easy. The next part is probably easy aswell, I just dont understand what they mean when they say "and initalize the contents to hold the given number of blanks" and something in the 3rd part when they say "character to use as the contents of the screen".
Think I have made a breakthrough... Would the constructor for the second part look like this:
screen(pos ht, pos wd) : contents(ht*wd) {}
or something?
View 8 Replies
ADVERTISEMENT
May 17, 2013
When the below is done, does it call the constroctor only, and if yes, constructors do not have return types so how does it work? is there anything behind the scene?
wxAddHandler(new wxPNG_HANDLER);
and
sf::RenderWindow(sf::VideoMode(...),...);
View 6 Replies
View Related
Feb 18, 2015
I am creating a class called time and we've had to do operator overloading for <, > , <=, >=, ==, !=, ++, --, >>, <<, * , +, and -.
Well I have done and error checked them all. The only one I cannot seem to get right is the minus and its because of the error checking. I am having issues with times like this
t1 = 0:0:2:3
t2 = 0:0:1:4
t1 - t2 should equal 0:0:0:59 but it returns 0:0:1:-1.
(days:hours:minutes:seconds)
I need it to check for all cases and I just do not know how. Here is the code I have so far:
time operator- (const time& x, const time& y){
time subtract;
subtract.days = x.days - y.days;
subtract.hrs = x.hrs - y.hrs;
subtract.mins = x.mins - y.mins;
subtract.secs = x.secs - y.secs;
[Code] .....
View 1 Replies
View Related
Sep 20, 2013
Suppose I have two classes A and B so how to access object of class A in constructor of B's class as a parameter.
View 6 Replies
View Related
Apr 27, 2013
The following are the cases when copy constructor is called.
1)When instantiating one object and initializing it with values from another object.
2)When passing an object by value.
3)When an object is returned from a function by value.
I don't understand #2 How can and object be passed by value? when I think of passing object I think of passing by address or reference. explain
I don't understand #3 how can a function returned object by value I think of again passing by address or reference.
View 4 Replies
View Related
Sep 15, 2013
I was wondering that why in the below code, the copy constructor is called 2 times.
Code:
class A {
private:
static int count;
int age;
public:
A()
[code].....
I think that when f(a) is called, since I am passing this as value, no copy constructor should be called. The copy constructor should called when the return object "x" is assigned to:
A b = x;
why copy constructor called 2 times?
View 9 Replies
View Related
Dec 6, 2014
I can't get my 'Front End' view model's constructor to be called. If i remove my dependency from the mvvm-light framework and use MSDN mvvm paterns then the constructor is called. What am i doing wrong. It seem like there is a data context binding issue between my XMAL and my view model backing.
ViewModelLocator.cs
using GalaSoft.MvvmLight.Ioc;
using Microsoft.Practices.ServiceLocation;
using Point_Of_Sale.Model;
using System.Collections.Generic;
namespace Point_Of_Sale.ViewModel {
public class ViewModelLocator
[Code] ......
View 1 Replies
View Related
Nov 19, 2012
#include<iostream>
using namespace std;
class Cents {
public:
int m_nCents;
Cents(int nCents=0):m_nCents(nCents){
cout<<"Calling normal constructor with value:"; m_nCents = nCents;
cout<<m_nCents<<endl;
[code].....
Question is :Why is the overloaded copy constructor that I have written not getting called here?Internally default copy constructor is getting called.Thats why we get value of obj2.m_nCents as 37.
View 6 Replies
View Related
Apr 10, 2013
I have the following classes and 'dreaded diamond':
A
/
/
B C
/
/
D
|
|
E
Classes B & C both inherit from A using public virtual A.
E is the only concrete class. None of the classes are totally abstract.
Every class has a copy constructor.
All of the copy constructors are chained together through the initialization lists.
E correctly calls D's copy constructor.
D correctly calls B and C's copy constructors.
But neither B nor C call A's copy constructor, although A's default constructor is called. To reiterate B and C have a call to A's copy constructor in their initialization lists.
I guess A's default constructor is being called is because of virtual inheritence, but why isn't its copy constructor called (too)?
A's copy constructor includes some very important code and I could do with calling it. Should I call it from the concrete class' initialization list or is that considered bad form?
View 8 Replies
View Related
Dec 29, 2014
#include <vector>
#include <iostream>
#include <iterator>
[Code]....
I am confused for first call to push_back copy constructor is called for second call I am expecting it to move class instance to new memory location there by trigering move and then inserting second class instance expected call:
Copy constructor
Move constructor
Copy constructor
but its calling
Copy constructor
Copy constructor
Move constructor
View 6 Replies
View Related
Jan 1, 2013
Is this example correct? This example from a book
Constructor of the Base Class
Person::Person(char* n="", char* nat="U.S.A", int s=1)
{
name = n;
nationality = nat;
sex = s;
}
Constructor of the Derived Class (inherited from the base class)
Student(char* n, int s=0, char* i=""):
Person(n, s)
Why the initialized list of the base class constructor doesn't match the initialized list of the derived class constructor? I know this book is a little bit old, I'm not sure if this wrong in VC++ 2010?
View 5 Replies
View Related
Jun 24, 2013
I have a question about the default constructor.
To my best understanding, the compiler will provide me with a deafult constructor only if there are no any user defined constructors, at all. Now consider the following code:
Code: class MyClass
{
private:
int m_data;
public:
MyClass(int init):m_data(init){cout<<"Ctr called"<<endl;}
[Code] ....
How is it that suddenly, there is a default constructor?
View 3 Replies
View Related
Mar 19, 2015
to initialize this object? Why C++ FAQ says no? Here is my code,
Code:
class A
{
public:
A(int x, char c);
A(int x);
[code] ....
I don't have any trouble to call the constructor A(int x, char c) from another constructor A(int x).
View 10 Replies
View Related
Oct 26, 2012
Here are the classes:
BaseClass.h
Code:
class BaseClass {
public:
BaseClass();
virtual ~BaseClass();
virtual void printStuff() const;
[Code] ....
When I call printStuff, the DerivedClass's function gets called. Now, if I remove the const part from the DerivedClass's printStuff function, we call the BaseClass's printStuff function.
View 4 Replies
View Related
Feb 23, 2015
Is there any way to track what functions from what class are called at runtime? What I mean is a list of functions or classes which have been called at runtime.
View 1 Replies
View Related
Apr 29, 2014
Define a class for a type called CounterType. An object of this type is used to count things, so it records a count that is a non-negative whole number.
Include a mutator function that sets the counter to a count given as an argument. Include member functions to increase the count by one and to decrease the count by one.
Be sure that no member function allows the value of the counter to become negative.
Also, include a member function that returns the current count value and one that outputs the count. Embed your class definition in a test program and run sufficient tests to verify it all works correctly.
View 3 Replies
View Related
Jan 6, 2015
Let's say I have a Car object , and it contains inner Engine object.
Code:
struct Car{
Engine mEngine;
};
In order to initialize the engine object NOT by the default constructor (if it has any) , we use initialization semantics:
Code:
Car::Car:
mEngin(arg1,arg2,...)
{
other stuff here
}
Now it gets tricky: Let's say a Car objects has 10 inner objects, each object has about 5 variables in it . Car is a base class for , e.g. , Toyota class. you don't want the Car class to have a constructor with 50 arguments. Can the inner objects of Car be initialized from the base class , e.g. Toyota?
Code:
class Toyota:
Car(...),
mEngine(...),
mGear(..)
{
...
};
The other options are:
1) like said , create a Car constructor which gets 50 arguments, then initialize Car as whole from Toyota - the code becomes less readable and less intuitive
2) Car constructor which get built-objects as arguments and initialize the inner objects with copy constructor . the code gets more readable but then you create many excess objects .
View 5 Replies
View Related
Nov 3, 2014
I have a class Square that is composed of two Points, I pass the former to the Square as references (second ctor) and two Points are created.
The problem is, at the end of the program, 4 Points are now being deleted which suggests that somewhere copies were made (regardless of the references) and the m_p1, m_p2 have different addresses than p1 and p2.
#include <iostream>
using namespace std;
class Point {
public:
Point();
Point(double x,double y);
double printCor() const;
[Code] .....
Even though, the objects were passed to the ctor by references, the copy constructor (compiler generated) for Point was called and now we have two points and an object square with distinct Point objects.
View 3 Replies
View Related
May 15, 2013
I understand it is done like this
// Calling the base class constructor
explicit CCandyBox(double lv, double wv, double hv, const char* str="Candy"): CBox(lv, wv, hv)
{
...
}
But how does the compiler know that you are initializing the base "part" of the object?
Or is this the entire reason initialization lists exist, to separate this confusion?
View 4 Replies
View Related
Feb 28, 2012
I am trying to use constructor within constructor in the same class. Is that possible. I have tried something and it shows me a error message:
error: type "mainClass" is not a direct base of "glavna"
This is the program I tried:
Code:
class mainClass {
private:
int x,y;
Code] ......
View 6 Replies
View Related
Oct 22, 2013
I've created a function where you can choose any bounds for an array based list (positive or negative, as long as the first position is smaller than the last position). However for some reason when I call the print() function in my application program it doesn't do anything. My print function is technically correct (I still have work to do on the output) but I can't figure out why it wont show anything at all. Below is my header, implementation, and main program files, along with results from running the program.
Header File:
//safearrayType Header File
class safeArrayType {
public:
void print() const;
void insertAt(int location, const int& insertItem);
safeArrayType(int firstPlace=0, int maxPlace = 100);
[Code] ....
ResultsEnter the first bound of yourlist: -3(this was my input)
Enter the last bound of yourlist: 7(this was my input)
Press any key to continue...
View 1 Replies
View Related
Jan 16, 2013
Please consider the following code :
#include <iostream>
using namespace std;
class superclass;
class subclass1;
class subclass2;
[Code] ....
As you can see I want to create a dynamically allocated storage of references to a parent class each of which can then point to a child class, how ever I do not know how to extract the child class out again from that array so i may access its variable b.
View 2 Replies
View Related
May 29, 2013
I really confused with constructor (default constructor and constructor with parameters)
I coded this problem
and I worked almost, but I stock in constructor
Code:
class Tier {
public:
enum TIER_MAKE
[Code] ....
This is tier class and I have to finish constructor in class car (for simple, I skip detail code) -red things are the parts from class Tier
Code: Car()
: make(NULL), passengers(0), fuelcap(0.0), efficiency(0.0), tier(Tier::nexen)
{ }
[Code] ....
And someone said default constructor part has to be this
Code:
car( Tier::TIER_MAKE p_tiermaker = Tier::nexen )
//after i skip
but default constructor should be no parameter...? isn't it?
View 1 Replies
View Related
Mar 22, 2014
# include <iostream>
# include <cstring>
#include <iomanip>
#include <cmath>
using namespace std;
class Course
// Creating the class Course
[Code] ....
Errors: Warning1warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
[Code] .....
I have to create an Array of type Course and then fill its member dats using various member functions. Those errors are caused by some Constructor defect, which I dont really know what it is.
View 2 Replies
View Related
Jan 13, 2015
I recently designed a struct like this
// MyMap.h
typedef std::map<std::string, std::function<void ()>> MyMap;
extern MyMap g_mymap;
// MyMap.cpp
My Map g_mymap;
[Code] ....
It looks useful to implement strategy pattern because it makes a fully separate code block. So I can add a function to the map simply by compiling a source file. It's very simple. I don't need to edit another file.
But when I use it for my existing project, It makes some linking and runtime errors.(vs 2012). I can't recognize exactly why because it is a huge project. Anyway, I have a question that - Is this a safe use of class constructor?
I know that there is no fixed order of running, but in this case I think it doesn't matter. because they are independent. But it is not a common pattern, so I can't decide to use it.
View 3 Replies
View Related
Nov 15, 2012
This is my class there is a problem with my copy constructor .. is that correct ??
struct Node {
Type info;
Node<Type> *next;
};
template <class Type>
class Queue
[Code] ....
View 1 Replies
View Related