PDA

View Full Version : تابع دوست و کلاسها



suraty
پنج شنبه 19 آبان 1390, 23:02 عصر
سلام
برنامه و تابعی بنویسید که بتواند اعمال زیر را روی دو کلاس انجام دهد.
الف) آرایه پویای 10 عنصری کلاس اول را با کمک سازنده پر کند.
ب) متغیری را که در کلاس دوم وجود دارد را در آرایه پویای کلاس اول جستجو کند و تعداد دفعات تکرار آن را مشخص کند.
من این برنامه رو به صورت زیر نوشتم که نمیدونم چرا خطا داره. لطفا اگه می تونید کمکم کنید.




#include"iostream.h"

#include"conio.h"

class class1{

int *p;

public:

class1(){

p=new int[10];

for(int i=0;i<10;i++){

*(p+i)=0;}

}

void input(){

for(int j=0;j<10;j++){

cin>>*(p+j); }}

friend void f(class1 ob1,class2 ob2);

};

class class2{

int a;

public:

friend void f(class1 ob1,class2 ob2);

void set(){

cin>>a; }

};

int main(){

class1 obj1;

class2 obj2;

f(obj1,obj2);

return 0; }

void f(class1 ob1,class2 ob2){

int k=0;

ob1.input();

ob2.set();

for(int i=0;i<10;i++){

if(ob1.p[i]==ob2.a)

k++; }

cout<<k; }




چرا کدها رو اینقدر بهم می ریزه؟
دو باره می نویسم:

#include"iostream.h"

#include"conio.h"

class class1{

int *p;

public:

class1(){

p=new int[10];

for(int i=0;i<10;i++){

*(p+i)=0;}

}

void input(){

for(int j=0;j<10;j++){

cin>>*(p+j); }}

friend void f(class1 ob1,class2 ob2);

};



class class2{

int a;

public:

friend void f(class1 ob1,class2 ob2);

void set(){

cin>>a; }

};



int main(){

class1 obj1;

class2 obj2;

f(obj1,obj2);

return 0; }



void f(class1 ob1,class2 ob2){

int k=0;

ob1.input();

ob2.set();

for(int i=0;i<10;i++){

suraty
جمعه 20 آبان 1390, 13:14 عصر
بازم سلام
کسی نمیدونه این برنامه برای چی خطا داره؟

حامد مصافی
جمعه 20 آبان 1390, 23:42 عصر
دوست عزیزم.
قبلا چندین بار به دوستن متذکر شدم... کسی حوصله کامپایل و کشف خطتی کد‌های شما را ندارد. لطف کنید شماره خطی که خطا را ایجاد کرده و همچنین متن خطا را قید کنید.

suraty
شنبه 21 آبان 1390, 00:12 صبح
سلام
می خواستم بگم مشکلم حل شد. فقط کافیه که قبل از نوشتن class1 کلاس دوم رو تعریف کنم.
راستی ولادت امام هادی(ع) رو به همگیتون تبریک می گم.
التماس دعا