C/C++ :: Class Square Composed Of Two Points - Destructor Called Twice
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
ADVERTISEMENT
Apr 8, 2014
Why in this code the destructor is called 2 time? How can i avoid it?
int _tmain(int argc, _TCHAR* argv[]) {
Elenco e1;
std::cout << "Test 2" <<std::endl;
std::cout<<e1.size()<<std::endl;
[Code] ....
View 5 Replies
View Related
Sep 17, 2013
Whenever my copy constructor is called, my destructor destroys is immediately after.
My copy constructor
CS1CStudent::CS1CStudent(const CS1CStudent& otherCS1CStudent)
{
cout << "
***************************
";
[Code]....
The copy constructor is called twice, once when you pass an object by value, and once when the object is returned from a function by value. But why is the destructor being called twice?
View 1 Replies
View Related
Jan 29, 2015
Why does the destructor is called just after declaring my object?
// MAIN
int main(void) {
Jucarie j1;
Jucarie j2(j1);
return 0;
}
THE DESTRUCTOR
Jucarie::~Jucarie() {
cout << "Destructor called" << endl;
delete[] material;
material = NULL;
}
I do not have a copy constructor, i just want to use the shallow copy. Why i get Debug Assertion Failed error? If i delete the destructor, all work fine.
I get it, the problem occurs when the material from j1 is deleted right? Because it has already been delete by j2.
View 1 Replies
View Related
Aug 29, 2014
I have a query regarding virtual destructor functionality. So below is sample code:
Code:
#include<iostream>
#include<stdlib.h>
using namespace std;
class Base
Code: Base *b = d;
Here b and d now pointing to same memory location.
Now below statement:
Code: delete (b);
Here since my destructor is virtual it will call derived class and base class destructor.
Now my question is, if I use this:
Code: delete (d); // And without virtual keyword in ~Base() {} This call both derived and base class destructor.
So which one is correct form to call and why? Is delete(b) is standard in virtual function mechanism.
Output is:
D1 :: function1()
Base :: function2()
INSIDE D1 DES
INSIDE BASE DES
View 2 Replies
View Related
Mar 20, 2013
Lets say we have a class that holds a pointer member to another object. If I delete that pointer in the destructor I get an error (and I understand why). My question is : is it possible to overcome that without memory leaks ?
1 #include<iostream>
2 using namespace std;
3
4 class A {
5 public:
6 ~A() {
7 cout<< "~A()" <<endl;
[Code] ....
View 5 Replies
View Related
Feb 25, 2015
An attempt to create a class which is basically a mimic of vector<int> i don't seem to know how to delete pointer x in a destructor to free memory, also on pushback and pushfront methods, i can't free y when i implement delete[] y; y=NULL; i get some NULL out put when cout 'ing the object in main, why is that happening and how do i free memory y.
#include<iostream>
using namespace std;
class vectorOfint{
int* x;
int size;
public:
vectorOfint();
[Code] .....
View 6 Replies
View Related
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
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
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
Feb 28, 2015
I am able to display a filled and hollow square by themselves, but I can't seem to be able to get them side by side.
So this is my code so far:
[/
#include <iostream>
using namespace std;
int main()
[Code]....
I can get the hollow square to show up, but the first square just shows up as a single line instead of a square. It seems that it ignores the first if statement in the second loop. I've tried not using an if statement in the second loop but it didn't seem to work either.
View 4 Replies
View Related
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
View Related
Feb 15, 2013
This code is supposed to ask the user to input characters at most 20 and they should only be composed of alphabets/spaces..
Code:
#include <string.h>
#include <stdio.h>
#include <ctype.h>
int main(){
char addressbook[6][30][0];
int current_record = 0, length, i=0;
[Code] ....
I have removed the error from the main code but there's still this lingering error in the return part.
syntax error before 'return'.
It won't compile.
View 5 Replies
View Related
Jan 18, 2013
I have a question regarding composition and accessing members "deep" inside the composed structure. For example;
class A {
private:
int m_myInt;
public:
int myInt() const {return this->m_myInt;};
void myInt(int newInt) {this->m_myInt = newInt;};
[Code] ....
Now, from somwhere I have access to an object of type B where I want to update the A::m_myInt. How would you do this without "breaking" the whole purpose of private/public members?
B myB;
myB.m_a.myInt(3); // Not allowed, and not desireable
I thought about implementing access through functons kind of like;
A & B::a() {return this->m_a;};
myB.a().myInt(3);
but I'm worried that this exposes my B::m_a-object too much. This would allow
myB.a() = A();
, right?
The following is a more desireable way of acces, but doesn't work for updating;
A const & B::a() {return this->m_a;};
myB.a().myInt(3); //Disallowed? myInt(int) is non-const.
What about this? Is this a good way of doing it?
class A {
private:
int m_myInt;
public:
int myInt() const {return this->m_myInt;};
[Code] ....
I guess it works? It would lead to a lot of data shuffling in case of larger sub-components.I would really like to do the following without exposing my components so much:
B myB;
myB.a().myInt(3);
Can it be done?
View 11 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
Nov 3, 2014
Example: In a 2-D space, point A=(a1,a2) is bigger than point B=(b1,b2), if a1>b1 and a2>b2.
How do I write a presudo code to find all the maximal points among the given n points?
View 14 Replies
View Related
Oct 25, 2013
I know how to draw a square hollow or filled but i need to draw an alternating pattern ....
ex
iPatternHeight = 1
X
iPatternHeight = 3
OOO
OXO
OOO
[Code] .....
View 6 Replies
View Related
Oct 25, 2013
I know how to draw a square hollow or filled but I need to draw an alternating pattern
ex
iPatternHeight = 1
X
iPatternHeight = 3
OOO
OXO
OOO
[Code] ......
View 2 Replies
View Related
Nov 21, 2014
Class Car{
Private:
string* _ID;
bool _isFaulty;
int _location;
int _timer;
int _order;
vector<Road*> _roadPlan;
}
I want to implements Copy constructor (deep copy) and destructor, and I don't know how to treat the vector of pointers (Road is an object too)
Mor
Another thing, maybe I'll prefer using List instead of Vector, so i would like to see an implements of Copy constructor and destuctor with List too,
View 3 Replies
View Related
Apr 18, 2014
Let's start with something from the c++ reference:
... delete[] is an operator with a very specific behavior: An expression with the delete[] operator, first calls the appropriate destructors for each element in the array (if these are of a class type) ...
I was wondering if I can tell delete[] to not call destructors, for example if I already know that the delete[] statement should be delete without []. That would be very useful for memory management/memory leak detection.
View 12 Replies
View Related
Dec 13, 2014
I have the following code. The destructor throws a segmentation fault when it gets called. My first instinct is that there's something screwy with the array allocation.
#ifndef ARRAYLIST_H
#defineARRAYLIST_H
#include <iostream>
#include "Exceptions.h"
using namespace std;
template <class T>
class ArrayList {
[Code] .....
It's specifically the memory clearance in the destructor that throws the segfault.
View 19 Replies
View Related
Feb 5, 2014
I get a runtime error when I add a destructor to my code.
Code:
#include <iostream>
#include <array>
using namespace std;
struct nodes { int* elements; };
class heap
[code]....
View 14 Replies
View Related
Aug 22, 2014
I wrote the following program, it can be compiled and run, but there is warning saying that if virtual function is defined, there should be a destructor. How to do that I tried many different ways I can thought of, but none of them works.
#include <iostream>
using namespace std;
class cell_c {
public:
double p;
cell_c() {p=1;}
virtual void print() {cout<<p<<endl;}
[code]....
View 1 Replies
View Related
Mar 7, 2014
I am trying to build a destructor that takes an array pointer and outputs part of a private vector and, comparing a string within the objects, overwrites the data in the array with the data in the vector. (vector and array use same class type) It then proceeds as usual.
#include <iostream>
#include <string>
#include <iomanip>
[Code].....
View 6 Replies
View Related