Çözüldü Fonksiyonla nesneler üretmek

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

heisenrut

Decapat
Katılım
3 Mayıs 2021
Mesajlar
22
Makaleler
1
Yemek diye bir sınıftan fonksiyonla nesneler üretmem gerekiyor ürettiğim nesneleri de tekrar mainde göstermek istiyorum bunu nasıl yapacağım?
İlk 1.code gibi düşündüm bunda ise [Error] 'yemekler' was not declared in this scope hatası veriyor. Sonra 2. code ki gibi fonksiyonu pointırla oluşturup çağırmayı beceremedim.
1.code
Kod:
#include <iostream>

using namespace std;
using std:: string;
class yemek.
{
 string anayemek;
 string yaninda1;
 stirng yaninda2;
 int fiyat;
}
int olustur(int x ,int y){
yemek*yemekler= new yemek[15,20];

cout<<"\n eklediginiz anayemeyi giriniz \n";cin>>yemekler[x,y].anayemek;
cout<<yemekler[x,y].anayemek;cout<<" yaninda hangi yemegi eklemek istediginizi yazin => ";cin>>yemekler[x,y].yaninda1;
cout<<yemekler[x,y].anayemek;cout<<" yaninda hangi garneturu eklemek istediginizi yazin => ";cin>>yemekler[x,y].yaninda2;
cout<<yemekler[x,y].anayemek;cout<<"fiyatini giriniz => ";cin>>yemekler[x,y].fiyat;

return ;
}
int main(int argc, char** argv) {

olustur(0,0);

cout<<yemekler[0,0].anayemek;
return 0 ;
}

2.code
Kod:
#include <iostream>

using namespace std;
using std:: string;
class yemek.
{
 string anayemek;
 string yaninda1;
 stirng yaninda2;
 int fiyat;
}
int olustur(int*yemekler){

cout<<"\n eklediginiz anayemeyi giriniz \n";cin>>yemekler[x,y].anayemek;
cout<<yemekler[x,y].anayemek;cout<<" yaninda hangi yemegi eklemek istediginizi yazin => ";cin>>yemekler[x,y].yaninda1;
cout<<yemekler[x,y].anayemek;cout<<" yaninda hangi garneturu eklemek istediginizi yazin => ";cin>>yemekler[x,y].yaninda2;
cout<<yemekler[x,y].anayemek;cout<<"fiyatini giriniz => ";cin>>yemekler[x,y].fiyat;

return ;
}
int main(int argc, char** argv) {
yemek*yemekler= new yemek[15,20];
olustur(&yemekler);
 
Son düzenleyen: Moderatör:
Çözüm
[CODE lang="cpp" title="Struct'lı hali"]#include <iostream>
#include <string>
using namespace std;

struct yemek //Class kullanmak yerine bunu kullandım. Class'lı halini yapacağım.
{
string anayemek;
string yaninda1;
string yaninda2;
int fiyat;
};
void olustur(yemek* yemek){ //Yemeğin adresini alarak ona direkt olarak ekleme yapıyoruz fonksiyon içerisinde.

cout<<"\n eklediginiz ana yemegi giriniz \n";cin>>yemek->anayemek;
cout<<yemek->anayemek<<" yaninda hangi yemegi eklemek istediginizi yazin => ";
cin>>yemek->yaninda1;
cout<<yemek->anayemek<<" yaninda hangi garneturu eklemek istediginizi yazin => ";
cin>>yemek->yaninda2;
cout<<yemek->anayemek<<" fiyatini giriniz => ";
cin>>yemek->fiyat;

}
int main(int argc, char** argv) {
yemek yemek_;
olustur(&yemek_); //yemek_ değişkeninin adresini verdim.

cout<<yemek_.anayemek;
return 0 ;
}[/CODE]

[CODE lang="cpp" title="Class'lı hali"]#include <iostream>
#include <string>
using namespace std;

class yemek
{
string anayemek;
string yaninda1;
string yaninda2;
int fiyat;
public:
inline yemek(string &anayemek, string &yaninda1, string &yaninda2, int &fiyat){
this->anayemek = anayemek;
this->yaninda1 = yaninda1;
this->yaninda2 = yaninda2;
this->fiyat = fiyat;
}
inline string anayemek_adi(){return this->anayemek;}
inline string yanindaki_yemek_bilgisi(){return this->yaninda1;}
inline string garnitur_bilgisi(){return this->yaninda2;}
inline int fiyat_bilgisi(){return this->fiyat;}
inline void goster(){std::cout<<"Yemek adi: "<<anayemek<<"\nYemegin yanindaki yemek: "<<yaninda1<<"\nYemegin yanindaki garnitur: "<<yaninda2<<"\nYemek fiyati: "<<fiyat<<"\n";}
};

int main(int argc, char** argv) {
string anayemek_, yaninda1_, yaninda2_;
int fiyat_;
cout<<"\n eklediginiz ana yemegi giriniz \n";cin>>anayemek_;
cout<<anayemek_<<" yaninda hangi yemegi eklemek istediginizi yazin => ";
cin>>yaninda1_;
cout<<anayemek_<<" yaninda hangi garneturu eklemek istediginizi yazin => ";
cin>>yaninda2_;
cout<<anayemek_<<" fiyatini giriniz => ";
cin>>fiyat_;
yemek yemek_(anayemek_,yaninda1_,yaninda2_,fiyat_);
yemek_.goster();
return 0 ;
}[/CODE]
[CODE lang="cpp" title="Struct'lı hali"]#include <iostream>
#include <string>
using namespace std;

struct yemek //Class kullanmak yerine bunu kullandım. Class'lı halini yapacağım.
{
string anayemek;
string yaninda1;
string yaninda2;
int fiyat;
};
void olustur(yemek* yemek){ //Yemeğin adresini alarak ona direkt olarak ekleme yapıyoruz fonksiyon içerisinde.

cout<<"\n eklediginiz ana yemegi giriniz \n";cin>>yemek->anayemek;
cout<<yemek->anayemek<<" yaninda hangi yemegi eklemek istediginizi yazin => ";
cin>>yemek->yaninda1;
cout<<yemek->anayemek<<" yaninda hangi garneturu eklemek istediginizi yazin => ";
cin>>yemek->yaninda2;
cout<<yemek->anayemek<<" fiyatini giriniz => ";
cin>>yemek->fiyat;

}
int main(int argc, char** argv) {
yemek yemek_;
olustur(&yemek_); //yemek_ değişkeninin adresini verdim.

cout<<yemek_.anayemek;
return 0 ;
}[/CODE]

[CODE lang="cpp" title="Class'lı hali"]#include <iostream>
#include <string>
using namespace std;

class yemek
{
string anayemek;
string yaninda1;
string yaninda2;
int fiyat;
public:
inline yemek(string &anayemek, string &yaninda1, string &yaninda2, int &fiyat){
this->anayemek = anayemek;
this->yaninda1 = yaninda1;
this->yaninda2 = yaninda2;
this->fiyat = fiyat;
}
inline string anayemek_adi(){return this->anayemek;}
inline string yanindaki_yemek_bilgisi(){return this->yaninda1;}
inline string garnitur_bilgisi(){return this->yaninda2;}
inline int fiyat_bilgisi(){return this->fiyat;}
inline void goster(){std::cout<<"Yemek adi: "<<anayemek<<"\nYemegin yanindaki yemek: "<<yaninda1<<"\nYemegin yanindaki garnitur: "<<yaninda2<<"\nYemek fiyati: "<<fiyat<<"\n";}
};

int main(int argc, char** argv) {
string anayemek_, yaninda1_, yaninda2_;
int fiyat_;
cout<<"\n eklediginiz ana yemegi giriniz \n";cin>>anayemek_;
cout<<anayemek_<<" yaninda hangi yemegi eklemek istediginizi yazin => ";
cin>>yaninda1_;
cout<<anayemek_<<" yaninda hangi garneturu eklemek istediginizi yazin => ";
cin>>yaninda2_;
cout<<anayemek_<<" fiyatini giriniz => ";
cin>>fiyat_;
yemek yemek_(anayemek_,yaninda1_,yaninda2_,fiyat_);
yemek_.goster();
return 0 ;
}[/CODE]
 
Çözüm

Yeni konular

Geri
Yukarı