الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمليات بين two objets

مغلق
بدأه CS_me في 31 مارس 2006 · 3 رد · 531 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي سؤال

الحين أنا سويت برنامج

وعرفت كائنين من نفس الصنف

وأريد أعمل بينهم عمليات حسابية مثل الجمع والطرح

لكن يطلع لي خطأ في main

ob1.m_add(ob2); //ERROR

ويقول مايصلح تحويل البارامتر من نوع الكلاس للنوع ثاني

لكني ما عرفت أستقبله على أي نوع

شكر مقدم؛

B)

#2

اعتقد ان المشكلة بسيطة, و لكن من الصعب ان نساعدك دون ان توضح لنا المزيد عن الكود .. يعني مثلا ما هو الكلاس, ما هو تعريف الدالة m_add الخ من هذه الأمور.

لا اطلب منك نسخ الكود كاملا الى هنا فهذا لا يساعد دائما, خصوصا اذا كان الكود طويل.

كل ما استطيع قوله الان و باختصار, لازم يكون هناك function اسمه m_add داخل الـ class اللذي كتبته, و لا بد ان يكون الـ parameter اللذي ياخذه هذا الـ function هو من نفس نوع الكلاس.

لازم تدير بالك في مسألة هل الـ parameter هو by value ام انه مؤشر؟ يعني اذا كان مؤشر, فلازم ترسل عنوان الـ object الثاني الى الـ function, اما اذا كان استقبال الـ parameter هو by value فلا تستطيع ارسال مؤشر الى الـ function.

#3

هل الparameter المحدد للدالة من نوع الclass وهل الدالة بترجع حاجة من نوع الclass أيضا

ClassName m_add(className obj)
{
 ClassName NewObj;
 NewObj.Val1 = this.Val1 + obj.Val1;
 return NewObj;
}

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#4

مرحبا أخواني

هذا جزء من الكود

أخذته وسويت كبرنامج كامل

#include <iostream>
#include <cstdlib>
using namespace std;

const int size=40;
int  digit;

class hugeInteger
{
private:
	int m_number[size];
public:
	hugeInteger ();
	void m_InputInteger(char []);
	void m_outputInteger();
	void m_addInteger(hugeInteger );

};

hugeInteger::hugeInteger ()
{
	for(int i=0; i<40; i++)
  m_number[size]=0;
}

void hugeInteger::m_InputInteger(char num[])
{
	int* numInt;
	char ch;
	int oneDigit;
	cout<<"\n How many of digits ? \t";
	cin>>digit;
	cout<<"\n The number = ";
	numInt= new int[digit];
	for (int i=0; i<digit; i++)
	{
  ch=num;
  oneDigit=atoi(& ch);
  m_number=oneDigit;
  cout<<m_number;
	}
	cout<<endl;
}


void hugeInteger::m_addInteger(hugeInteger num2[] )
{
	int i,temp=0;
	int resAddNums[size+2];
	for( i=0;(i<(size+2));i++)
  resAddNums=0;

	for( i=0;i<(size+2);i++)
	{
  resAddNums=m_number+num2+temp;
  if (m_number>=10)
 	 temp=resAddNums-10;
  cout<<resAddNums;
	}
	cout<<endl;
}

int main()
{
	char numChar[size];

	hugeInteger hugeInt1;
	hugeInteger hugeInt2;


	cout<<"\n Enter two numbers (1-40 digit):";
	cout<<"\n The First : ";
	cin>>numChar;
	hugeInt1.m_InputInteger(numChar);
	cout<<"\n\n\n\n The Second: ";
	cin>>numChar;
	hugeInt2.m_InputInteger(numChar);
	hugeInt1.m_addInteger(hugeInt2);
 	 



  return 0;
}

هذا الموضوع مغلق.

مواضيع مشابهة