Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Перегрузка конструктора



Также как и любые другие функции, конструкторы могут перегружаться. Перепишем предыдущий пример, добавив в него перегружаемый конструктор, в который можно передавать значения n и k. В этом примере экземпляр класса можно описывать например так prostr x; в этом случае конструктор вызывается без параметров, или так prostr x (3,5); в этом случае вызывается перегружаемый конструктор с параметрами.

#include <iostream>

#include <math.h>

using namespace std;

class prostr{

int n;

int k;

double **a;

double min;

double max;

int imin;

int jmin;

int imax;

int jmax;

public:

prostr(int,int);

prostr();

void poisk_min();

void poisk_max();

void vivod_result();

void delete_a();

};

//Текст второго конструктора

//Нельзя в качестве формальных параметров конструктора использовать переменные n и k,

//потому что это имена членов класса. Если в качестве формальных параметров указать n и k,

//то внутри конструктора будут использоваться локальные переменные n и k, но при этом члены //класса prost n и k будут не определены.

prostr::prostr(int k1, int n1)

//Входными параметрами являются размерность пространства n1 и количество точек в //пространстве k1.

{

int i,j;

//Присваиваем членам класса n и k значения входных параметров конструктора

k=k1;

n=n1;

a=new double*[k];

for(i=0;i<k;i++)

a[i]=new double[n];

for(j=0;j<n;j++)

{

cout<<"VVedite koordinati "<<j<<"tochki"<<endl;

for(i=0;i<k;i++)

cin>>a[i][j];

}}

void main()

{

//Можно вызывать конструктор с параметрами

prostr x(3,5);

//или без prostr x; в этом случае будет вызываться

//тот же конструктор, что и в предыдущем примере.

x.poisk_max();

x.poisk_min();

x.vivod_result();

x.delete_a();

}





Дата публикования: 2014-11-28; Прочитано: 226 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...