C Plus Plus structure

From ArticleWorld


A C++ structure is a basic C++ data type that resembles C++'s class type and C's traditional structures. Just like C++'s classes, a C++ structure can have member functions, constructors, destructors and operator overloads, but its default accessibility is public instead of private. It also resembles C structures, as they are also declared using the struct keyword. However, the declaration itself is not compatible with its C equivalent.

Contents

Usage

Using structures in C++ is quite straightforward. In fact, anyone who has had to do with C will find it easy enough:

#include <iostream>
#include <string>

struct pupil {
    string name;
    float time;
};

int main () {

pupil x, y;
x.name = "Jones";
y.name = "Taylor";
x.time = 91;
y.time = 75;

cout << x.name << "finished in " << x.time << "seconds" << endl;
cout << y.name << "finished in " << y.time << "seconds" << endl;
}

It should be fairly easy to realize what this program outputs.

Member functions

You can easily add member functions to a structure:

struct pupil {
    string name;
    float time;
    void printName() {
       cout << name;
    }
};

Structures may have contructors and destructors as well:

struct pupil {
    string name;
    float time;

    void printName() {
       cout << name;
    }

    pupil(string theName, time theTime) {
       name = theName;
       time = theTime;
    }

    ~pupil() {
       cout << "I'm killing myself";
    }
};

The usage of destructors is, however, less widespread than that of the constructors. Few structures actually need an overloaded destructor.

Other features

C structures also have support for operator overloading and can be used as a template. They can be used with the reference operator (&) when passed to a function, so that the amount of memory consumed on the stack is minimized.

Controversy

The C++ structures were subject to a great deal of controversy. The extra added keywords break the compatibility with C, and many argued that the usage of overloaded operators (<<, >>, +=) can lead to confusions. While convenient for many, the C++ structures are still subject to many endless debates.