|
touché
|
|
|
|
|
Not necessarily.
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
Now that DavidCrow mentions it, and the caffeine is kicking in...
I'm pretty sure I was right
LMAO
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Nope.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
you're saying this as if such construction never exists... but I'm sure it is !
for example, the following is perfectly valid : "If I were you, I wouldn't do that"...
|
|
|
|
|
|
Mark, wait.
I didn't say all I write is gramatically correct; I make mistakes sometimes.
BUT, isn't the construction I just asked you in this thread valid ?
|
|
|
|
|
I'm just goofin with you here, of course.
toxcct wrote: isn't the construction I just asked you in this thread valid ?
Where at? I missed something somewhere
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I see it now sorry
Yeah you are right I think. The more I say both versions, yours sounds better.
And using "was" implies past tense which seems silly.
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
And you're right [^]. Anyway it looks like 'wish ' is needed in the sentence.
Anyway I'm a poor Italian man...
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hi
I was in the understanding that if you declare a static function it can only be called from the source file where it is declared.
Am I missing something??
The error says "unresolved external symbol"
the call to the function is in file1.cpp where I have:
myClass::myFunction(variable1, variable2);
In myClass.h I have:
class myClass
{
static void myFunction
}
and in myClass.cpp I have the function definition:
myClass::myFunction()
{
//function definition
}
I can't call myFunction from file1.cpp
As you can tell I am a novice programmer and in desperate need of explanation
|
|
|
|
|
steph5 wrote: I was in the understanding that if you declare a static function it can only be called from the source file where it is declared.
Am I missing something??
Yes That would make calling any external functions
impossible.
steph5 wrote: I can't call myFunction from file1.cpp
The linker can't find myClass.obj.
Is myClass.cpp not part of the project?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
steph5 wrote: I was in the understanding that if you declare a static function it can only be called from the source file where it is declared.
That's true.
steph5 wrote: Am I missing something??
Yes: in
steph5 wrote: class myClass
{
static void myFunction
}
is not an ordinary (i.e. C-style ) static function, is a static method (i.e is a member of the class even if you don't need an instance of the class to call it).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: That's true.
Huh? I call static methods that aren't in the same
source file all the time
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
|
class myClass
{
public:
static void StaticMethod();
};
void <code>myClass::</code>StaticMethod()
{
}
void somefunc()
{
myClass::StaticMethod();
}
Maybe you forgot the part in red above...
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Actually his sentence, steph5 wrote: I was in the understanding that if you declare a static function it can only be called from the source file where it is declared.
and yours Mark Salsbery wrote: Huh? I call static methods that aren't in the same
source file all the time
are not in conflict: standard (i.e C -like, not belonging to a class ) static functions have file scope, while static methods have not such a constraint.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: while static methods
C++ (actually Bjarne Stroustrup) don't talk about methods (which is more correct to Java/C#), but talks about member variables and member functions.
|
|
|
|
|
OOP talks about methods. C++ use its own jargon to name the same entity.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I stand corrected!
And I'm not the one that voted you down!
Cheers!
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Mark Salsbery wrote: I stand corrected!
did you ever doubt if?
Mark Salsbery wrote: And I'm not the one that voted you down!
No doubt about.
BTW: no Kanine Crunchies for my troll this evening.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: Kanine Crunchies
Now I'm hungry!
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Any ideas how I can have a function I can call from anywhere
but where I don't need an instance of the class to call it?
|
|
|
|
|
You can call a static method of a class from other cpp files!
You need to link the files however.
The problem is in your project - the linker isn't finding
the file with the function being called. Fix that and it
will work.
The two files in your example ARE in the same project, right?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
yes all the files are incluceded in the same project.
how do I make sure the linker finds the file?
The thing is I can call myClass::myFunction() from one of the .cpp files in the project,
but I can't call it from another .cpp file in the same project. whats going on?
Thanks for your time
|
|
|
|