首页 > C++编程 > error C2724:’static’ should not be used on member functions

error C2724:’static’ should not be used on member functions

错误全称:error C2724 : 'funname' : 'static' should not be used on member functions defined at file scope。

错误原因:C++类头文件中使用了static声明静态方法,在Cpp源文件中定义该静态函数时再次使用了static修饰。

解决方案:Cpp源文件定义静态成员函数时不再需要static修饰。或者定义直接放在h头文件中。

在写简单工厂模式中遇到了这个问题,因为Factory中要使用静态方法,发现很多基本的C++知识我都忘记了。贴一个示例代码:

/*****************************************
	Filename:Factory.h
	Author:代码疯子
	Blog:http://www.programlife.net/
******************************************/

#ifndef __FACTORY_H_H
#define __FACTORY_H_H

#include "Shape.h"
#include "Circle.h"
#include "Rectangle.h"
#include "Triangle.h"
#include "UnsupportedShapeException.h"
#include <string>

class Factory
{
public:
	static Shape* draw(string type);
};

#endif
/*****************************************
	Filename:Factory.cpp
	Author:代码疯子
	Blog:http://www.programlife.net/
******************************************/
#include "Factory.h"

Shape* Factory::draw(string type)
{
	if(type == "circle")
	{
		return new Circle();
	}
	else if(type == "rectangle")
	{
		return new Rectangle();
	}
	else if(type == "triangle")
	{
		return new Triangle();
	}
	else
	{
		//抛出异常
		throw UnsupportedShapeException();
		return NULL;
	}
}

觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> error C2724:’static’ should not be used on member functions
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



  1. 赏花月浓
    2015年6月1日21:17 | #1

    谢谢解答得这么详细。

    [回复]