answersLogoWhite

0

To create a working copy of a class you simply copy the class definition.

struct A { int data; }; // original class

struct B { int data; }; // copy of the class

However, it makes no practical sense to have two copies of the same class. Remember that a class is nothing more than a type definition and we only ever need one definition for any given type. If we copy a class, we actually define two completely independent types. A and B are not of the same type, even though their implementations are completely identical in every way. The names alone are what actually differentiate them.

Once defined, we can use the exact same definition in any program that requires it without copying it. If we choose to copy classes rather than reuse existing ones, we only increase the maintenance burden because any changes to one copy will have to be replicated in all the copies (assuming we wish all copies to behave identically), and that can quickly lead to inconsistencies.

To avoid the need for copies, we simply place the class definition in a header file which can then be included (using the #include compiler directive) in any program that requires it. The class implementation is (usually) placed in a corresponding source file which must also be part of the compilation but if we wish to use the class in more than one program then we can simply compile the source as a library and link to the library instead.

User Avatar

Wiki User

7y ago

What else can I help you with?

Related Questions

How do you create a class in C plus plus?

class class_name { private: data_members; public: member_functions; };


What is message passing in c plus plus?

-define class with necessary data member & member function. -create object of that class. -communication.


How do you create an object type object in c plus plus?

An object is simply an instance of a class. #include<iostream> class my_object {}; int main() { my_object X; // instantiate an instance of the class my_object, identified as X. }


How do you write classes and objects for hospital management software using objective c or c plus plus?

You declare a class as follows: class MyClass { //some stuff here... } You create an object as follows: MyClass object; This is how you create classes and objects in C++.


What is cloning in c plus plus?

Cloning simply means returning a copy of an existing object. When we work with base classes, it helps to include virtual methods that allow us to create new instances of derived objects as well as base objects, even when we don't know the exact type of those derived classes beforehand. We could use runtime information to determine the exact type, but its costly and ultimately defeats the purpose of polymorphism. By convention, the virtual methods are called Create(), Clone() and Copy(). Create() is the same as calling the default constructor of the class. Clone() is the same as calling the copy constructor of the class. Copy() is the same as calling the assignment operator of the class. It should be noted that the actual copy constructor and assignment operators should both call the Copy() method while the Create() method should also be overloaded to cater for all other construction overloads besides the default constructor. With these methods in place, it becomes possible for base classes to implement much of the functionality that would otherwise only be possible by accessing costly runtime information, or by duplicating code in all derived classes, which quickly becomes a maintenance nightmare. The methods can also be used in abstract classes, but they must be declared pure-virtual since you cannot create instances of an abstract class.


Is it mandatory to use the construtors in a class in c plus plus?

No. If you do not provide a default constructor, the compiler will provide a default constructor that simply allocates memory for the class, but it will not initialize the members of the class. If you do not provide a copy constructor, then the compiler will provide a copy constructor that allocates memory for the class, and then copies the member's data from class to class. This is bad if the class contains pointers, because only the pointer will be copied - the objects to which the pointers point will not be copied - and you could wind up deleting an object and then using it after deletion, with potentially devastating consequences. So, yes, it is mandatory, from a good practices point of view, and just plain mandatory when the class has pointers, to always provide a default constructor and a copy constructor, along with the appropriate destructor.


Sample program of c plus plus by using an algorithm union?

The union of two data sequences is the combined set of both sequences. To create a union, copy the first data sequence then append the second to the copy. Both sequences must be of the same type.


Can a c plus plus class be derived from a Java class?

No.


How do you invoke the constructor function in c plus plus?

There is no such thing as a constructor function in C++ (constructors have no return value, not even void, and cannot be called like regular functions). Constructors are invoked rather than called directly, either by declaring a static variable of the class type, or via the C++ new operator.


How do you concatinate two files in c plus plus?

Copy the first file then append the second file to the copy.


What supports reusability and extensibility of classes in c plus plus?

There are two ways to reuse a class in C++. Composition and inheritance. With composition, any class data member can be an instance of an existing class. With inheritance, we can derive a new class from an existing class. Either way, we create a new class of object with all the properties of the existing class which can be extended and/or replaced with properties of our own.


How many days will take for xerox copy of answer sheet for plus two tn?

Plus Two chemistry exam answer sheet copy 2013