invalid use of non-static member function ‘void Date::init(int, int, int)’
来源:互联网 发布:局域网问卷调查软件 编辑:程序博客网 时间:2024/05/20 09:05
#include<iostream>using namespace std;class Date{ public: int day,month,year; void init(int,int,int); void print_ymd();};void Date::init(int yy, int mm, int dd){ year = yy; month = mm; day = dd;}void Date::print_ymd(){ std::cout << year << "-" << month << "-" << day << std::endl;}int main(){ Date date1; Date *p1 = &date1; //指向对象的指针 p1->init(2006, 3, 28); p1->print_ymd(); int *p2; p2 = &date1.year; //指向对象数据成员的指针 std::cout << *p2 << std::endl; void (Date:: * p3)(int,int,int); //指向对象成员函数的指针 void (Date:: * p4)(); //指向对象成员函数的指针 p3 = Date::init; p4 = Date::print_ymd; (date1.*p3)(2006, 4, 8); (date1.*p4)(); return 0;}
编译的时候会报错:
35:13: error: invalid use of non-static member function ‘void Date::init(int, int, int)’
p3 = Date::init;
36:13: error: invalid use of non-static member function ‘void Date::print_ymd()’
p4 = Date::print_ymd;
将p3= Date::init;改为:
p3 = &Date::init;
将p4 = Date::init;改为:
p4 = &Date::print_ymd;
C++的非静态成员函数在未实例化之前地址是不确定的,所以要将Date的两个成员函数
的地址指明之后才能进行赋值操作。
0 0
- invalid use of non-static member function ‘void Date::init(int, int, int)’
- invalid+use+of+non-static+member+function+问题
- 错误:invalid use of non-static data member 'main_form::zhiliu_datainfo'
- invalid initialization of non-const reference of type ‘int*&’ from a temporary of type ‘int*’
- void function(int (&array)[5])
- void (*f(int, void (*)(int)))(int)
- void (*Pfun(int, void(*Qfun)(int))) (int)
- Cannot declare member function ‘static int Foo::bar()’ to have static linkage
- C++之invalid initialization of non-const reference of type ‘int&’ from an rvalue of type ‘int’
- Argument of type '(Foo::)(int,int)' does not match 'void (*)(int,int)'以及静态函数问题
- error: initializing argument 2 of 'void (* signal(int, void (*)(int)))(int)'
- 解决note: initializing argument 2 of 'void (* signal(int, void (*)(int)))(int)'问题
- 理解(*(void(*)())0)()和void (*signal(int, void(*)(int)))(int)
- static int 和 int 区别
- 出现错误"illegal call of non-static member function"?
- int
- int?
- int ?
- 使用cmake安装mysql5.5.13
- Eclipse编辑器基本设置
- POJ 1743 Musical Theme
- Struts2框架_02
- DG下手工处理v$archive_gap方法
- invalid use of non-static member function ‘void Date::init(int, int, int)’
- KVC-键值编码
- linux文件链接
- 二分图
- 字符串(集合)的全排列和子集
- 下载好一个android软件之后,怎样自动提示安装?
- Hadoop状态转移图生成
- Struts2框架_03
- 利用批处理启动cygwin到指定的目录.