![]() |
Misc C++ things I have trouble understanding
I find myself asking myself certain questions when I am programming C++. When I consult textbooks, I often find the answers cryptic, or over simplified. Lately, I have been experimenting with pointers and OOP.
I'll start with OOP. Here, I've written a program that declares a class for some of the properties of a gem, creates a gem named "bob", and within the main function, the characteristics for bob are declared then echoed back. Code:
//********************************* Code:
--------------------Configuration: oop - Win32 Debug-------------------- I guess I seem like a C++ n00b, but we all have to start somewhere, I guess. |
Re: Misc C++ things I have trouble understanding
You need to change "Class" to "class".
If you look carefully at the errors ( Specifically #1 ) that the compiler has outputted you'll see what's wrong. All C++ keywords are case-sensitive so typing Class or Struct is not the same as class or struct. |
Re: Misc C++ things I have trouble understanding
"Class" must have a lower case 'c' so it should be "class" and not "Class" :)
|
Re: Misc C++ things I have trouble understanding
lol :D damnit got there before me 8D
|
Re: Misc C++ things I have trouble understanding
ugh, one shift key mix-up, and three errors sprout up. I thought class was uppercase because they are uppercase in Botman's C++ tutorial...
damn shift key.... damn. |
Re: Misc C++ things I have trouble understanding
it looks like the reason for the three errors is 1: because of class being written with a uppercase 'C' . error 2: the compiler gets confused cause when you used the uppercase C it probably thinks you are declaring a variable with Class as a type and wants the ; to end the sentence. error 3 is probably due to line 17 being an invalid code. Am I on the right track?
MusicMan |
Re: Misc C++ things I have trouble understanding
also remember that everything is case sensitive in C/C++, even filenames. Micro$oft visual studio does not correctly handles file names (create some project and see: stdafh.h is name of file and in source code, Visual .NET types #include <StdAfx.h> which of course will rin on Windows(tm) machines but won't even compile on Linux)
|
Re: Misc C++ things I have trouble understanding
Quote:
|
Re: Misc C++ things I have trouble understanding
I disagree: at least MSVC 6 doesn't care about the case in the include files...
|
Re: Misc C++ things I have trouble understanding
theres something about the MSVC6 compiler i hate..
i think its all the extra crap they put in a program that gcc doesn't do. |
Re: Misc C++ things I have trouble understanding
Well there's a checkbox in your project settings...
it's called "disable compiler extensions", I think... :) |
Re: Misc C++ things I have trouble understanding
i haven't checked out all the options in MSVC6 yet cuz i recently moved to GNU/Linux and I just decided to use gcc on both to make life simpler
|
Re: Misc C++ things I have trouble understanding
Quote:
I'm using it, because I'm familiar with editor and it is easy to code in it (for me). Also MSVC 6.0 added less microsoft's incompactible stuff than .NET I'm working now on some program that has to run under linux, and using editors other than Visual studio would slow me down. So far, I 'encountered' these problems : - MSVC adds #pragma once in header files, which is obsolete. G++ compiles without problems, but It is better to use #ifndef ... #define ... #endif - MSVC uses precompiled header shite, and I had to change #include "StdAfx.h" to #include "stdafx.h" cause of case sensitivity on linux systems - If you create a new class in Classview, the files MSVC creates are case sensitive so I had to covert them to lovercase. (#include "something" was lowercase ->OK) - However, MSVC typed #include ".\something.h" so I had to change it to #include "something.h" - MSVC .NET included <tchar.h> and added lot of shite like _tmain, and _tchar. It is UNICODE support and it is not ANSI standard imo, so I couldn't compile it under g++. I had to change _tmain to main and _TCHAR to char. ALso I had to remove #include <tchar.h> from stdafx.h - If you change precompiled header (stdafx.h), it is pain to compile program in MSVC, 'cause MSVC forgets to compile it. You have to go to project properties and somewhere there under C++ tab, you must choose compile precompiled headers after all those changes, code compiles well under linux, and program runs perfectly (I had to create makefile, indeed). Also to note that if you srand(0) under windows and linux, it gives you another set of random numbers :( After all these problems, I still use MSVC, cause I often do MFC programs under windows and MSVC .NET has some nice features like outlining and task list |
All times are GMT +2. The time now is 18:20. |
Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.