Читайте также:
|
|
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include<conio.h>
#include <string.h>
#include <iomanip>
#include <windows.h>
#include <locale.h>
#define N 3
using namespace std;
class church
{
char *name; // все элементы данных private – по умолчанию
char school;
unsigned int count;
float square;
public:
void set(char *a,char b,unsigned int c, float d);
void get(char *a, char &b, unsigned int &c, float &d);
void show(void);
};//конец класса
void church::set(char *a,char b,unsigned int c,float d)
{
name=new char[];
strcpy(name,a);
//name=a;
school=b;
count=c;
square=d;
}
void church::get(char *a, char &b, unsigned int &c, float &d)
{
delete[] a;
a=new char [strlen(name)+1];
strcpy(a,name);
b=school;
c=count;
d=square;
}
void church::show(void) {
cout << name <<" ";
cout << school <<" ";
cout << count <<" ";
cout << square <<" ";
}
int main()
{
setlocale(LC_ALL, "rus");
char *n=new char[100];
char t;
unsigned int s;
float h;
short i;
church obj[N];
//clrscr();
cout<<"Работа функции SET!\n";
for (i=0; i<N; i++)
{
cout<<"Название, Школа, Количество монахов, Площадь земли: \n";
cout<<"\n==>";
cin>>n;
cout<<"\n==>";
cin>>t;
cout<<"\n==>";
cin>>s;
cout<<"\n==>";
cin>>h;
obj[i].set(n,t,s,h);
}
cout<<"Работа функции SHOW!\n";
cout<<"Название, Школа, Количество монахов, Площадь земли: \n";
for (i=0; i<N; i++)
{
obj[i].show();
cout<<"\n";
}
cout<<"Работа функции GET и SHOW!\n";
cout<<"Название, Школа, Количество монахов, Площадь земли: \n";
for(i=0; i<N; i++)
{
obj[i].get(n,t,s,h);
obj[i].show();
cout<<"\n";
}
_getch();
delete[] n;
return 0;
}
Пример выполнения в виде одного файла с конструктором (в примере два варианта вызова конструктора – по умолчанию и со списком)
#include <stdafx.h>
#include <iostream>
#include <stdlib.h>
#include<conio.h>
#include <string.h>
#include <iomanip>
#include <locale.h>
#include <windows.h>
#define N 3
using namespace std;
class church
{
char *name;// все элементы данных private – по умолчанию (см. лекцию)
char school;
unsigned int count;
float square;
public:// прототипы методов
church (char* _name = "По умолчанию", char _school = 'А', unsigned int _count = 0, float _square = 0.); //конструктор по умолчанию заполняет все члены-данные
~church ();//прототип деструктора
void set(char *a,char b,unsigned int c, float d);
void get(char *a, char &b, unsigned int &c, float &d);
void show(void);
};//конец класса
church::~church ()//деструктор
{
cout<<"\n работает деструктор - объект уничтожен\n";
}
church::church (char* _name, char _school, unsigned int _count, float _square)
{
cout<<"работает конструктор\n";
name=new char[];
strcpy(name, _name);
school = _school;
count = _count;
square = _square;
}
void church::set(char *a, char b,unsigned int c,float d)
{
name=new char[];
strcpy(name, a);
school=b;
count=c;
square=d;
}
void church::get(char *a, char &b, unsigned int &c, float &d)
{
delete[] a;
a=new char [strlen(name)+1];
strcpy(a,name);
b=school;
c=count;
d=square;
}
void church::show(void)
{
cout<<name<<" ";
cout<<school<<" ";
cout<<count<<" ";
cout<<square<<" ";
}
int main()
{
setlocale(LC_ALL, "rus");
//SetConsoleCP(1251);
//SetConsoleOutputCP(1251);
char *n=new char[100];
char t;
unsigned int s;
float h;
short i;
church obj[N];//созданы просто для примера З объекта конструктором по умолчанию
/* можно было бы и с инициализацией массива объектов:
church obj[N]={church("Тодайдзи","Т",220,368.8),
church("Якусидзи","С",50,54.7),
church("Дайандзи","Д",10,12.2)};
*/
cout<<"Результат работы конструктора по умолчанию: \n";
for (i=0; i<N; i++)
{
obj[i].show();
cout<<"\n";
}
cout<<"\nРезультат работы конструктора с указанием параметров: \n";
church obj1("name", 'r', 10, 10.657);
obj1.show();
obj1.~church();
cout<<"\nРабота функции SET!\n";// для примера
for (i=0; i<N; i++)
{
cout<<"Название, Школа, Количество монахов, Площадь земли: \n";
cout<<"\n==>";
cin>>n;
cout<<"\n==>";
cin>>t;
cout<<"\n==>";
cin>>s;
cout<<"\n==>";
cin>>h;
obj[i].set(n,t,s,h);
}
cout<<"Работа функции SHOW!\n";
cout<<"Название, Школа, Количество монахов, Площадь земли: \n";
for (i=0; i<N; i++)
{
obj[i].show();
cout<<"\n";
}
cout<<"Работа функции GET!\n";
cout<<"Название, Школа, Количество монахов, Площадь земли: \n";
for(i=0; i<N; i++)
{
obj[i].get(n,t,s,h);
obj[i].show();
}
_getch();
delete[] n;
return 0;
}
Дата добавления: 2015-09-11; просмотров: 72 | Поможем написать вашу работу | Нарушение авторских прав |
<== предыдущая лекция | | | следующая лекция ==> |
Задание к выполнению | | | ТЕМА:«Анализ стандарта основного общего образования по технологии (базовые разделы)». |