Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2010, 05:58   #1
raspberry
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 15
По умолчанию проблема с указателями

просьба помочь с указателями
Код:
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>


class Anim //klass jivotnoe
{protected:
char*name; //v bazovom klasse - imya klassa
//v proizvodnom - klichka jivotnogo
int nk;
int np;
public:
Anim(char*s,int n, int k);
Pet(int);
Anim(const Anim&a);
~Anim();
void set_name();
void set_k();
void set_p();
void enter();
void print();

};

Anim::Anim(char*s="Mlekopitayuschie ",int p=5,int k=4)
{ cout<<"V konstruktore bazovogo klassa"<<endl;
strcpy(name,s);
nk=k;
np=p;
}

Anim::Anim(const Anim&a)
{cout<<"V konstruktore bazovogo klassa"<<endl;
strcpy(name,a.name);
nk=a.nk;
np=a.np;
}

Anim::~Anim()
{cout<<"V destruktore bazovogo klassa"<<endl;
}

void Anim::set_name()
{cout<<"Vvedite klass jivotnogo\n";
cin>>name;
}

void Anim::set_k()
{cout<<"--bazovyy klass-"<<endl;
cout<<"Vvvedite chislo konechnostey jivotnogo: ";
cin>>nk;
cout<<endl;
}

void Anim::set_p()
{cout<<"Vvedite chislo potomkov: ";
cin>>np;
cout<<endl;
}

void Anim::enter()
{set_name();
set_p();
set_k();
}

void Anim:rint()
{cout<<"Naimenovanie klassa: "<<name<<endl;
cout<<"Chislo konechnostey jivotnogo: "<<nk<<endl;
cout<<"Kolichestvo potomkov: "<<np<<endl;
}

class Petublic Anim
{public:
Pet(char*s,int n,int k):Anim(s,n,k)
{cout<<"V konstruktore proizvodnogo klassa"<<endl;
name="Sobaka\n";
np=n;
nk=k;
}
~Pet();
void set_p();
void set_name();
void printp();
};

Pet::~Pet()
{cout<<"V destruktore proizvodnogo klassa"<<endl;
}
void Pet::set_p()
{cout<<"--proizvodnyy klass--"<<endl<<"pereopredelenie funkciy"<<endl;
cout<<"Vvedite chislo potomkov: ";
cin>>np;
}

void Pet::set_name()
{cout<<"Vvedite klichku jivotnogo (pereopredelenie funkcii): ";
cin>>name;
}

void Pet:: printp()
{cout<<"Klichka jivotnogo: "<<name<<endl;
cout<<"Kolichestvo potomkov: "<<np<<endl;
cout<<"Kolichestvo konechnostey: "<<nk<<endl;
}


main()
{clrscr();
Anim ob1;
ob1.enter();
ob1.print();
Pet* ptr=new Pet("",2,2); 
ptr->set_name();
ptr->printp();
// p.printp();
cin.get();
cin.get();
return 0;}


Pet* ptr=new Pet("",2,2); \\\\\\ вот здесь проблема, не знаю как сделать по другому и не знаю как исправить ошибку. не переопределяются параметры

Последний раз редактировалось Stilet; 20.04.2010 в 07:56.
raspberry вне форума Ответить с цитированием
Старый 20.04.2010, 08:01   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я ниче не понимаю... У тебя эта программа хоть компилируется?
В ней же 30 синтаксических ошибок...

Вот если написать так:
Код:
// w.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
#include <stdio.h>

using namespace std;
class Anim //klass jivotnoe
{protected:
char name[255]; //v bazovom klasse - imya klassa
//v proizvodnom - klichka jivotnogo
int nk;
int np;
public:
	Anim(char *s,int n, int k)
		{ cout<<"V konstruktore bazovogo klassa"<<endl;
		strcpy(name,s);
		nk=k;
		np=n;
	}
	Anim(const Anim&a){
		cout<<"V konstruktore bazovogo klassa"<<endl;
		strcpy(name,a.name);
		nk=a.nk;
		np=a.np;
	}
	~Anim(){cout<<"V destruktore bazovogo klassa"<<endl;}
	void set_name(){cout<<"Vvedite klass jivotnogo\n";cin>>name;}
	void set_k(){
		cout<<"--bazovyy klass-"<<endl;
		cout<<"Vvvedite chislo konechnostey jivotnogo: ";
		cin>>nk;
		cout<<endl;
	}
	void set_p(){cout<<"Vvedite chislo potomkov: ";cin>>np;cout<<endl;}
	void enter(){set_name();set_p();set_k();}
	void print(){
		cout<<"Naimenovanie klassa: "<<name<<endl;
		cout<<"Chislo konechnostey jivotnogo: "<<nk<<endl;
		cout<<"Kolichestvo potomkov: "<<np<<endl;
	}
};

class Pet:Anim{
public:
 Pet(char*s,int n,int k):Anim(s,n,k){
	 cout<<"V konstruktore proizvodnogo klassa"<<endl;
	//name="Sobaka\n";
	np=n;
	nk=k;
 }
 ~Pet(){cout<<"V destruktore proizvodnogo klassa"<<endl;}
 void set_p(){
	cout<<"--proizvodnyy klass--"<<endl<<"pereopredelenie funkciy"<<endl;
	cout<<"Vvedite chislo potomkov: ";
	cin>>np;
 }
 void set_name(){cout<<"Vvedite klichku jivotnogo (pereopredelenie funkcii): ";cin>>name;}
 void printp(){
	cout<<"Klichka jivotnogo: "<<name<<endl;
	cout<<"Kolichestvo potomkov: "<<np<<endl;
	cout<<"Kolichestvo konechnostey: "<<nk<<endl;
 }
};


int _tmain(int argc, _TCHAR* argv[])
{
Anim *ob1=new Anim("q",1,2);
ob1->enter();
ob1->print();
Pet* ptr=new Pet("",2,2); 
ptr->set_name();
ptr->printp();
// p.printp();
cin.get();
cin.get();

return 0;
}
То еще в принципе компилируется (я правда не знаю пойдет ли это на твоем компиляторе но на моем именно так) и даже выполняется.
И твоя проблема "не переопределяются параметры " исчезает - все определяется.
I'm learning to live...

Последний раз редактировалось Stilet; 20.04.2010 в 08:26.
Stilet вне форума Ответить с цитированием
Старый 20.04.2010, 23:04   #3
raspberry
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 15
По умолчанию

там должно наследоваться
"Kolichestvo potomkov: "
"Kolichestvo konechnostey: "
а оно всегда выдаёт 2 2
вот это мне так же не удаётся исправить
raspberry вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с указателями в цикле kolob2000 Общие вопросы C/C++ 7 26.03.2010 00:54
Проблема с указателями 3D Hunter Общие вопросы Delphi 8 14.03.2009 06:55
проблема с указателями =\ shad0w Общие вопросы C/C++ 9 09.12.2007 03:36
Проблема с указателями novicer Общие вопросы Delphi 5 17.06.2007 00:21