By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,159 Members | 947 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,159 IT Pros & Developers. It's quick & easy.

static member variable

P: n/a
given the following code:

myclass.h:
-------------------------------

class CMyClass
{
public:
CMyClass();
private:
static int test;
}
--------------------------------
myclass.cpp:
-------------------------------

#include "myclass.h"

CMyClass::CMyClass
{
CMyClass::test = 5; // error: unresolved external symbol
}
--------------------------------
I want to make a private member variable of static kind. What did I make
wrong? I always get the error message "unresolved external symbol".
I've already tried to access it via "this->test" but this doesn't work
either. Is it not allowed to access the static variable outside the same
file? What do I have to do in order to be able to access it from within my
member-functions?

any help is appreciated,
ekim
Jul 22 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
myclass.cpp should contain a line:

int CMyClass::test = 5; // initial value for the static variable must be set
separately

It's ok to use the variable in the constructor (or any method) if you need
this.

Make sure you understand the difference between link & compile time errors
for the future.

HTH, Iakov

"Ekim" <th************@gmx.net> wrote in message
news:2p************@uni-berlin.de...
given the following code:

myclass.h:
-------------------------------

class CMyClass
{
public:
CMyClass();
private:
static int test;
}
--------------------------------
myclass.cpp:
-------------------------------

#include "myclass.h"

CMyClass::CMyClass
{
CMyClass::test = 5; // error: unresolved external symbol }
--------------------------------
I want to make a private member variable of static kind. What did I make
wrong? I always get the error message "unresolved external symbol".
I've already tried to access it via "this->test" but this doesn't work
either. Is it not allowed to access the static variable outside the same
file? What do I have to do in order to be able to access it from within my
member-functions?

any help is appreciated,
ekim

Jul 22 '05 #2

P: n/a
Hi Ekim:

You have declare a static member variable and use it,
but you haven't defined it.

In your source put the definition after #include "myclass.h"
int CMyClass::test=0; //for example

Ekim escribió:
given the following code:

myclass.h:
-------------------------------

class CMyClass
{
public:
CMyClass();
private:
static int test;
}
--------------------------------
myclass.cpp:
-------------------------------

#include "myclass.h"

CMyClass::CMyClass
{
CMyClass::test = 5; // error: unresolved external symbol
}
--------------------------------
I want to make a private member variable of static kind. What did I make
wrong? I always get the error message "unresolved external symbol".
I've already tried to access it via "this->test" but this doesn't work
either. Is it not allowed to access the static variable outside the same
file? What do I have to do in order to be able to access it from within my
member-functions?

any help is appreciated,
ekim

Jul 22 '05 #3

P: n/a
problem solved - thx a lot to both of you!

by ekim

"Iakov Nakhimovski" <ia****************@hotmail.com> wrote in message
news:cg**********@news.island.liu.se...
myclass.cpp should contain a line:

int CMyClass::test = 5; // initial value for the static variable must be set separately

It's ok to use the variable in the constructor (or any method) if you need
this.

Make sure you understand the difference between link & compile time errors
for the future.

HTH, Iakov

"Ekim" <th************@gmx.net> wrote in message
news:2p************@uni-berlin.de...
given the following code:

myclass.h:
-------------------------------

class CMyClass
{
public:
CMyClass();
private:
static int test;
}
--------------------------------
myclass.cpp:
-------------------------------

#include "myclass.h"

CMyClass::CMyClass
{
CMyClass::test = 5; // error: unresolved external

symbol
}
--------------------------------
I want to make a private member variable of static kind. What did I make
wrong? I always get the error message "unresolved external symbol".
I've already tried to access it via "this->test" but this doesn't work
either. Is it not allowed to access the static variable outside the same
file? What do I have to do in order to be able to access it from within my member-functions?

any help is appreciated,
ekim


Jul 22 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.