区分int a() 和 int a

本文深入解析了C++编程中函数内部声明函数的原理与使用技巧,揭示了这一特性如何在实际编程中提高代码复用性和灵活性,并通过实例演示了正确与错误的实现方式。

事因

#include <iostream>
using namespace std;
struct A
{
    A(int) {}
    A() {}
    void fun() {};
};

int main()
{
    A a(2);
    a.fun();
    A b();
    b.fun();
}

编译错误

解释

A b(); 是函数声明,返回值为A, 函数名为b

不信你看

#include <iostream>
using namespace std;

int main()
{
    int test();
    cout << test << endl;
    cout << test() << endl;
}

int test()
{
    return 1000;
}

结果

 

鄙视下自己

今天才知道函数里边还可以声明函数(不可以定义)的。不信你看

#include <iostream>
using namespace std;

int main()
{
	int test();
	cout << test << endl;
	cout << test() << endl;
}

int test()
{
	void test1();
	test1();
	return 1000;
}
void test1()
{
	cout << "I'm here" << endl;
}

结果

 

 

转载于:https://www.cnblogs.com/kaituorensheng/p/3614700.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值