اقتباس

Syntax Error: Const Variable and Sending by Reference

لايمكن إرسال Const Variable بطريقة By reference إلى دالّة .

#include <iostream>
using namespace std;

void fun(int);

void main()
{
   const int ConstVar = 3; //const variable
    fun(ConstVar); 
}
void fun(int & a) // (&) Cause an Error
{
}

 

الخطأ الناتج:

Error 1 error LNK2019: unresolved external symbol “void __cdecl fun(int)” (?fun@@YAXH@Z) referenced in function _main C:\Users\Amjad\documents\visual studio 2013\Projects\myBlog\myBlog\main.obj myBlog

Error 2 error LNK1120: 1 unresolved externals C:\Users\Amjad\documents\visual studio 2013\Projects\myBlog\Debug\myBlog.exe 1 1 myBlog

Advertisements

مضاعفات العدد

-أكتب دالة تستقبل عددين صحيحين ، تقوم بـ return true  إذا كان العدد الثاني من مضاعفات العدد الأول و return false في أي حالة أخرى.

الحل:

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

bool multiple(int x , int y)
{
 if (y%x == 0)
 return true;

 return false;
}
void main()
{
 int num1, num2;
 cout << "Enter two numbers: ";
 cin >> num1 >> num2 ;
 multiple(num1, num2);

 system("pause");

}

-أكتب البرنامج بطريقة أخرى بحيث تكون الدالة return void واستخدم مفهوم Call-by-Reference ، ويجب عدم استخدام global variables .

الحل:

#include <iostream> 
using namespace std;

void multiple(int &x, int &y , bool & result)
{
 
 cout << "Enter two numbers: ";
 cin >> x >> y;


 if (y%x == 0) result = true;
 
 else result = false;
}
void main()
{
 int a, b;
 bool result;
 multiple(a, b , result );
 if (result) cout << b << " is a multiple of " << a << endl;
 else cout << b << " is not a multiple of " << a << endl;


 system("pause");
}