使用函数和调用函数意思是一样的吗?

各位佬,c++练习题,第一题A是对的和第二题D是错的是因为调用不算是使用吗?还是别的什么原因?

img

img

几个知识点:
(1)申明和定义的区别,申明只是函数头上那一行,不包括函数体,这个放在调用之前就可以了。
比如
//下面是声明
int add(int, int);
int main()
{
int i = add(1, 2);
}
//下面是定义
int add(int a, int b)
{
return a + b;
}

(2)函数里当然不能放入函数定义,比如
int main()
{
int add(int a, int b)
{
return a + b;
}
int i = add(1, 2);
}
这肯定不行

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/250425
  • 除此之外, 这篇博客: C++面向对象程序设计(三)——2.类和对象基础中的 如果某函数有一个参数是类 A 的对象,那么该函数被调用时,类A的复制构造函数将被调用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    class A
    {
        public:
        	A(){ };
        	A( A & a ){
                cout << " Copy constructor called " << endl;
            }
    };
    void Func(A a1){}
    int main(){
        A a2;
        Func(a2);
        return 0;
    }//输出: Copy constructor called
    

    如果函数的返回值是类A的对象时,则函数返回时,A的复制构造函数被调用

    class A
    {
        public:
        int v;
        A( int n ){ v = n; };
        A( const A & a){
            v = a.v;
            cout << " Copy construtor called  " << endl;
        }
    }
    A Func(){
        A b( 4 );
        return b;
    }
    int main(){
        cout << Func().v <<endl;
        return 0;
    }
    //输出结果: 
    //Copy constructor called
    //4
    

    但是,对象间的赋值并不会导致复制构造函数被调用


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^