Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8449135
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 10, 20262026-06-10T10:37:19+00:00 2026-06-10T10:37:19+00:00

I have a confusion on class member variable initialization. Suppose in my .h file

  • 0

I have a confusion on class member variable initialization.

Suppose in my .h file is:

class Test {

int int_var_1;
float float_var_2;

public:
       Test();
}

My .cpp would be:

Test::Test() : int_var_1(100), float_var_2(1.5f) {}

Now when I instantiate a class the variables get initialized to 100 and 1.5.

But if that is all I’m doing in my constructor, I can do the following in my .cpp:

int Test::int_var_1 = 100;
float Test::float_var_2 = 1.5f;

I’m confused as to the difference between initializing the variables in constructors or with the resolution operator.

Does this way of initializing variables outside constructor with scope resolution only apply to static variables or is there a way it can be done for normal variables too?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-10T10:37:20+00:00Added an answer on June 10, 2026 at 10:37 am

    You cannot substitute one for the other. If the member variables are not static, you have to use the initialization list (or the constructor body, but the initialization list is better suited)*. If the member variables are static, then you must initialize them in the definition with the syntax in the second block.

    * Als correctly points out that in C++11 you can also provide an initializer in the declaration for non-static member variables:

    class test {
       int data = 5;
    };
    

    Will have data(5) implicitly added to any initialization list where data is not explicitly mentioned (including an implicitly defined default constructor)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a bit confusion in choosing whether to use NSManagedObjet class objects directly
Have a bit of confusion here. I added a few objects from a class
I have this following scenario namespace A { //... class A { public: static
I have a confusion on some piece of code. Inside a class I have
I have some confusion with singleton class, below are my some points: Can singleton
I have confusion about the concept of inheritance in C++, suppose we have a
I have a confusion with wait() method of thread class. It is known that
class Sequence{ public: Sequence(); virtual void buildTables(); protected: string seq; struct tables{ int a;
I have a confusion between two B keywords. The official B reference manual uses
i have few confusion regarding ORM(Object Relational Mapping) i am thinking about to use

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.