gpt4 book ai didi

c++ - 函数指针不起作用

转载 作者:行者123 更新时间:2023-11-28 00:42:56 26 4
gpt4 key购买 nike

此代码无效

知道为什么

#include <QCoreApplication>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include "a.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
boost::asio::io_service io;
std::cout << "Wait for five seconds\n";
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
// t.wait();
A *vvv=new A();
std::cout << "Hello, world!\n";
t.async_wait(&print);
std::cout << "Keep cool and wait!\n";
return a.exec();
}
void print(const boost::system::error_code& /*e*/)
{
std::cout << "You are cool!\n";
}

错误:

D:\qtsrc\asiotry\main.cpp:14: error: C2065: 'print' : undeclared identifier

最佳答案

看看这段代码:

 int *address = &i; //using i here!

int i; //declaration

这段代码有什么问题?你正在做类似的事情。

main() 之前声明 print 以便您可以在 main()使用它:

//declaration
void print(const boost::system::error_code& /*e*/);

int main()
{
//use print here
}

//definition
void print(const boost::system::error_code& /*e*/)
{
std::cout << "You are cool!\n";
}

请注意,您需要在使用函数之前声明该函数,不一定意味着声明必须在 main()< 之上。您也可以这样做:

int main()
{
//declaration
void print(const boost::system::error_code& /*e*/);

//use print here AFTER the declaration!
}

希望能帮助您理解声明和使用的概念。 -)

关于c++ - 函数指针不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17880908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com