News:

So the widespread use of emojis these days kinda makes forum smileys pointless, yeah?

Main Menu

C++ , likes/dislikes?

Started by deadly7, September 18, 2005, 12:32:34 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

iago

gcc!

A C++ compiler can also compile C code. 

MyndFyre

MSVC is free too :P  http://www.microsoft.com/downloads/details.aspx?FamilyID=272be09d-40bb-49fd-9cb0-4bfa122fa91b&DisplayLang=en

Incidentally, static variables work differently in C than C++.  Static variables in C still had scope, typically at function-level:


void doSomething(int a) {
  static int num;
  num += a; // probably will generate a compiler error, as num is unassigned.
}


In C++, "static" variables are supposed to belong to a class as opposed to an instance of the class (like in Java and C#).
Quote from: Joe on January 23, 2011, 11:47:54 PM
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Quote from: Rule on May 26, 2009, 02:02:12 PMOur species really annoys me.

iago

Quote from: MyndFyrex86] link=topic=2945.msg28397#msg28397 date=1127174162]
MSVC is free too :P  http://www.microsoft.com/downloads/details.aspx?FamilyID=272be09d-40bb-49fd-9cb0-4bfa122fa91b&DisplayLang=en

Incidentally, static variables work differently in C than C++.  Static variables in C still had scope, typically at function-level:


void doSomething(int a) {
  static int num;
  num += a; // probably will generate a compiler error, as num is unassigned.
}


In C++, "static" variables are supposed to belong to a class as opposed to an instance of the class (like in Java and C#).

Yeah, the example I gave, and the one that RaBBiT wanted, was in a class.  So that's C++. 

MyndFyre

It wouldn't make sense to make a globally-static variable outside of a function in C, because that was the beauty of static variables; they retained their value from one function call to the next.
Quote from: Joe on January 23, 2011, 11:47:54 PM
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Quote from: Rule on May 26, 2009, 02:02:12 PMOur species really annoys me.

Hauptmann Raub

Quote from: iago on September 18, 2005, 05:17:44 PM
Quote from: rabbit on September 18, 2005, 01:02:18 PM
I dislike MSVCC.  The port of GNU MingW+MSYS for Win32 is an awesome compiler, which can be extended to compile C++, Java, and Assembly (it comes with C compiling).  I really like it.

One thing I dislike about C++ (mostly due to learning VB6 first), is that I can't use a globally accessible variable (IE: class main has a value, but I need to pass an instance of main to every other class so that I can access 1 variable).  It's very annoying, but I've gotten somewhat used to it.
You're talking about a "static" variable. 

class A
{
public:
  static int a = 3;
};

...........
A.a = 5; // no instance of A! Just the class itself!


I don't think that'll compile, since I seem to remember that C++ has something stupid about static variables, but yeah. 

Anyway, is the book on C or C++?

C is invaluable to learn.  Once you know C, any other language is fairly easy.  If you ever plan to do anything low-level, like hardware programming or even game hacks, you're going to be doing it in C.  C has been around for 25 years, and isn't going anywhere. 

I love how C code looks.  It's nice code, if you know it well you can do anything.  You can even do object oriented-style programming in C, and I like doing it in C a lot better than C++.


C++, I don't like.  It's shambled together on top of C, and makes thing more complicated.  In trying to maintain their reverse compatibility with C, they added a lot of kludges and workarounds that make code really ugly (like static class variables have to be initialized outside of the class, or something like that).  C++ code tends to be much more mangled and ugly than the equivalent C code.  I very much dislike C++.  If I intend to do something object-oriented, I use Java.  Java wasn't trying to maintain reverse compatibility, so it's a lot nicer. 

It's like comparing IA-64 assembly to HP-Tru64.  HP-Tru64 was designed and built to be 64-bit.  So it's faster and cleaner.  IA-64, on the other hand, maintains reverse compatibility with 32-bit and 16-bit, and, as such, is pretty ugly. 




Anything other than static integral values need to be defined outside the class.

Joe

cpp (the GNU thing), MSVC++ 98 (talk to xar (IRC)), Bloodshed Dev-Cpp
Quote from: Camel on June 09, 2009, 04:12:23 PMI'd personally do as Joe suggests

Quote from: AntiVirus on October 19, 2010, 02:36:52 PM
You might be right about that, Joe.


mfqr

Quote from: Joe[e2] on September 18, 2005, 01:06:56 PM
QuoteWhat are some likes and dislikes from the people that code it?
Likes:
- Fast and small binary files
Dislikes:
- After learning VB, this is hard++.

QuoteShould I learn another programming language before jumping into this one?
I think Java is a lot easier than C++, yet uses the same basic syntax, so you should probably learn a bit of that first.

QuoteWhat's a good compiler I can use on a WinXP box?
I settle for MSVC++.

yeah from what I've read, cpp is fast, but cant the binaries sometimes get really big too? I guess i'm sort of comparing this to asm. is it true that some asm binaries can be down to bytes even? like 25 bytes?

MyndFyre

Yeah that's true, but rarely will a system load a code-only binary except at boot time (files such as ntldr are code-only).  They're hard to trust, and the extra information helps to keep the system safe.
Quote from: Joe on January 23, 2011, 11:47:54 PM
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Quote from: Rule on May 26, 2009, 02:02:12 PMOur species really annoys me.

iago

Sure, an assembly file can be 25 bytes, but it's useless. 

Any program (assembly or c++) has to call library functions to be useful.  Often, the libraries are included in the executable, which makes it pretty big.