devxlogo

A Few Remarks About Inline Specifier

A Few Remarks About Inline Specifier

All member functions implemented within a class declaration are by default inline:

 //file:  A.hclass A {	int a;	public:	int Get_a() { return a; } //declaration + definition; 						//implicitly inline	void Set_a(int aa) { a = aa; } //ditto	void calc(int *result); //declaration only	//...}

Keep in mind, however, that whenever this .h file is #included, the code of the Geta() member function, as well as any other member function defined in the declaration file, is re-compiled. As a result, not only do you end up with longer compilation time, but you also may encounter longer linking time and difficulty to step into the function code during a debugging session. Therefore, it is best to implement all member functions in their corresponding .cpp file and leave only function prototypes in the .h file like this:

 //file:  A.hclass A {	int a;	public:	inline int Get_a(); //implemented in a separate .cpp file 	inline void Set_a(int aa);  	void calc(int *result); 	//...}//file: A.cpp#include "A.h"int A::Get_a() {	return a;}//etc..

By the way, even when defining these member functions separately, the inline specifier is most likely redundant, since any decent optimizer is clever enough to figure out automatically when a member function should be inlined. In other words, inline is almost never required.

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist