zoukankan      html  css  js  c++  java
  • 2019.11.12的错误集

    错误①
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
      .text+0x20): undefined reference to `main'
      collect2: error: ld returned 1 exit status
    解决:asio.hpp ---> asio.cpp(后缀名问题) //在标准库支持的情况下尽可能使用标准库的功能,而不是boost的功能

    错误②
      test.cpp: In function ‘int main()’:
      test.cpp:14:11: error: cannot call member function ‘void A::print()’ without object
      A::print();
    解决:这是在没有定义对象的情况下调用了类的成员函数造成的结果。可以在此函数上加static变量,参考signalton。

    错误③:
      class A {
        private:
          boost::asio::io_context io_;
          A(boost::asio::io_context& io_context) : io_(io_context) { std::cout << " ok " ;}
      };

      int main(){
        boost::asio::io_context io_context;
        A(io);
        io.run();
        return 0;
      }
      test.cpp: In constructor ‘A::A(boost::asio::io_context&)’:
      test.cpp:7:57: error: use of deleted function ‘boost::asio::io_context::io_context(const boost::asio::io_context&)’
      A(boost::asio::io_context& io_context) : io_(io_context) { std::cout << " ok " ;}
    解决:这是一个连续引用的错误问题,应该把A的成员变量io_,定义为boost::asio::io_context&。
       这是因为在构造函数结束后io_context这个引用变量就失效了。
      例子:

     1     #include<iostream>                                                                   
     2     class A {                                                                            
     3       private:                                                                           
     4         int my_;                                                                         
     5       public:                                                                            
     6         A(int& a):my_(a){                                                                
     7           std::cout << "address a :" << &a << std::endl;    //a是引用                             
     8           std::cout << "address my_:" << &my_ << std::endl; //my_是用引用初始化的值。                     
     9       }                                                                                  
    10     };                                                                                   
    11     int main(){                                                                          
    12       int m = 10;                                                                        
    13       std::cout<< "address m :" << &m << std::endl;                                      
    14       A o(m);                                                                            
    15       return 0;                                                                          
    16     }  
        
  • 相关阅读:
    软件工程第一次作业
    软工热身作业
    OO第四单元
    面向对象——规格总结
    OO电梯作业总结
    JAVA实现表达式求导运算的分析总结
    提问回顾与个人总结
    Flutter的环境配置以及一些常见问题
    软件案例分析
    软件工程结对作业
  • 原文地址:https://www.cnblogs.com/Ccluck-tian/p/11842053.html
Copyright © 2011-2022 走看看