• 0

Newbie C++ Help


Question

Recommended Posts

  • 0
Ok, I got inspired today to learn a programing language. I want to learn C++ but I am sitting here with no clue on earth on where to start. Can anyone give me links to newbie tutorials and sites? If you can, please state any tips that you have for me, thanks!

errr...Google..seriously VS 2008 Express is free and you can download to learn C++.

  • 0

Hey guys, i need some BIG help.

Its the last 2 weeks of my computing course at college and i am panicking over my program, the tutor isn't allowed to help me with the program all he can do is say whether its wrong or right and what i need to do next etc.

Anyways, i have the program half done at least, but now i am completely stumped, i was wondering if someone here could add me on msn and help me finish the program, i wouldn't bother asking but i suck at it and its not my strong side not to mention its a required credit to pass HNC computing!

  • 0
Hey guys, i need some BIG help.

Its the last 2 weeks of my computing course at college and i am panicking over my program, the tutor isn't allowed to help me with the program all he can do is say whether its wrong or right and what i need to do next etc.

Anyways, i have the program half done at least, but now i am completely stumped, i was wondering if someone here could add me on msn and help me finish the program, i wouldn't bother asking but i suck at it and its not my strong side not to mention its a required credit to pass HNC computing!

If you have a programming problem, post that. Stackoverflow.com is always a great place to ask for help. If you need somebody to actually FINISH your assignment then that's just your own laziness.

  • 0

Hi guys. I'm not in any computer-related programs in University/College but I've decided that I have too much free time, and I'd like to pick up programming as my hobby (don't really have a real one at the moment). I was thinking of starting with C++ to learn the basics of OO programming, and then moving onto C# or Objective-C... My end goal is to either join an indie game development team until I have enough experience to possibly lead my own way down the line or to write iPhone or Android applications... depending on how I feel after experiencing some programming. I'm not a total newb, I took some high school programming courses (in Java and Visual Basic, I also know HTML/CSS from personal experience) so I'm not going into this completely blind.

Any pointers for someone in my position? Tips? Advice that isn't "don't even bother trying?" Thanks in advanced! I have lots of motivation and a strong will so I think I should be able to do it.

  • 0

If you've done Java, you've already had an overdose of OO. I'd actually recommend starting with C. It will give you a much better understanding and appreciation of How Things Really Work, and once you've gotten that, the higher languages will make much more sense.

  • 0
Hi guys. I'm not in any computer-related programs in University/College but I've decided that I have too much free time, and I'd like to pick up programming as my hobby (don't really have a real one at the moment). I was thinking of starting with C++ to learn the basics of OO programming, and then moving onto C# or Objective-C... My end goal is to either join an indie game development team until I have enough experience to possibly lead my own way down the line or to write iPhone or Android applications... depending on how I feel after experiencing some programming. I'm not a total newb, I took some high school programming courses (in Java and Visual Basic, I also know HTML/CSS from personal experience) so I'm not going into this completely blind.

Any pointers for someone in my position? Tips? Advice that isn't "don't even bother trying?" Thanks in advanced! I have lots of motivation and a strong will so I think I should be able to do it.

I'll have to disagree with kliu0x52 and recommend a modern language such as C#. C doesn't teach you to think with objects and encourages practices considered sloppy such as extensive use of the preprocessor, global functions and variables, abuse of casts, using return codes for error-checking, memcpy(), and the list goes on. Skip C for now, you can always learn it later, it's very simple (and very stupid).

To learn the basics of OO you're much better off with a real, pure OO language like Java or C# than C++. C++ is hard to learn and you won't be productive with it before quite a while. However, it's definitely a big plus (a double plus :p) to know C++ if you want to work as a programmer, and going through it definitely teaches you a lot of things about how higher-level languages work under the hood. I personally started with C++, and I must say all the other languages were a breeze and a relief after that.

  • 0
C doesn't teach you to think with objects

It teaches the underpinnings of OO. He's already done OO in Java. C teaches you how OO is implemented. Back when I tutored people and had to explain to them things like static and virtual methods, I often found that the best explanations, the ones that elicited a "oh, I get it now, that makes so much more sense than how I was taught" was when I broke things down and explained how OO was implemented and how that affects why some things in OO are the way that they are.

It's the difference between telling someone that they can use a fire extinguisher to put out a fire and explaining to someone what goes on chemically when something burns and how, as a result, you can stop a fire by either depriving it of the reactants--the latter makes the former more understandable and also opens up a wider perspective (e.g., "so that means that I can also stop a fire by dumping sand on it since that too will choke out the oxygen, right?").

encourages practices considered sloppy such as extensive use of the preprocessor, global functions and variables, abuse of casts, using return codes for error-checking, memcpy(), and the list goes on.

You don't have to use the preprocessor that much, and C does not encourage the use of global variables. The so-called "abuse" of casting is just a way of revealing How Things Really Work. And I don't see how memcpy is abusive.

Skip C for now, you can always learn it later, it's very simple (and very stupid).

It's very simple. And insanely powerful. And absolutely essential for anyone who wants to be a real programmer (instead of just a hobbyist). And an understanding of C will make so many things in other languages make more sense.

I'll admit that I do harbor a very deep disdain for Java and C# (I've been known to call them toy languages when I'm cranky :)). "Modern" languages focus on making life easier for the programmer. And they focus on a "bigger picture" approach to development. It's all about big, grand architecture and it's great if you are working on some large project comprised of various interconnected components. And if that's what you're doing, then yea, go ahead and use an OO language--there is a time and place for them! But be aware that they really narrow your perspective; learning C# is like vocational training while learning C is really learning how to program. Someone (I forgot who) once wrote that Java and C# is a lot like a hardware store approach: you walk in and look on the shelf for some part to do the thing that you need; it takes away from a lot of the problem solving and ingenuity of real programming.

The other big problem is that abstractions are not perfect. One of the Google founders once joked that software gets twice as slow every 18 months and that's why we need Moore's Law. But why is that? When people are so far separated from What Really Goes On Underneath, they are liable to make dumb design decisions. For example, SOAP. Or anything XML, for that matter (obviously, whoever thought it'd be cute to use XML for everything has no friggin' idea of the costs associated with using XML as a format). If you knew that concatenating two strings involves creating a new string, copying the contents of string A, copying the contents of string B, and freeing string A and B, then you'd be more careful about using such operations unnecessarily. If you understood what kind of huge bookkeeping costs the heap manager has to go through to allocate the memory of string C and "free" the memory for string A and string B (heaps are very complicated and are very expensive clock-cycle-wise), then you'd be even more keen to avoid such operations (or use the stack or some custom allocation scheme if possible). If you understood what the system has to go through to carry out a floating point operation, then you'd use x+=x<<1 instead of x*=1.5 (okay, granted, knowing C won't expose the costs of floating point or heaps, which is why I also advocate learning a bit of assembly :)). The "modern" languages want you to ignore such inconvenient details. And as more people write code without knowledge of What Really Goes On, then we will get progressively less efficient code (I'm not saying that you should abandon C# for C, but rather that if you knew C, then that understanding of the guts of the system will make you a more efficient C# programmer).

  • 0

Hello. Thanks for the replies.

My former experience with programming happened over 6 years ago so I am quite rusty and do not remember, but I think I would be able to pick it up eventually. Thank you both for your advice, but I think starting with C may be a good idea after all - kliu0x52 makes a very convincing argument :)

I plan on starting as a hobby, but depending how much I enjoy doing it, it could move onto a full-time career for me. I've grown up around computers yet never dived into programming seriously. I think that time has come now. Any advice on where to start? Any good books or websites for someone in my position? I do not remember much about OO or procedural programming at all.... my most recent programming knowledge is HTML & CSS which probably won't help with where I am headed. Any direction would be appreciated!

  • 0
Hello. Thanks for the replies.

My former experience with programming happened over 6 years ago so I am quite rusty and do not remember, but I think I would be able to pick it up eventually. Thank you both for your advice, but I think starting with C may be a good idea after all - kliu0x52 makes a very convincing argument :)

I plan on starting as a hobby, but depending how much I enjoy doing it, it could move onto a full-time career for me. I've grown up around computers yet never dived into programming seriously. I think that time has come now. Any advice on where to start? Any good books or websites for someone in my position? I do not remember much about OO or procedural programming at all.... my most recent programming knowledge is HTML & CSS which probably won't help with where I am headed. Any direction would be appreciated!

I doubt you will score a fulltime career without a CS degree. In my university comp sci classes has a few 40-50 year old people trying to get their degree because they can't even find a job with 20+ years of programming experience.

But as a hobby, by all means pursue it. You can probably start off with some programing tutorial videos (good place to look is @ torrents) and pick it up pretty quickly with your prior experience.

As far as developing applications, I can't help you there (I'm more of a systems programming guy). But i can tell you that its best to use a sophisticated IDE (For example, you really wouldn't want to program a gui by hand, i tried it and progress has been veerryy slow for me [lost motivation])

SO where to really start? thats up to you. Google something like "developing applications for iphone" and see where that takes you. Hit a roadblock? google the obstacle and learn how to overcome it. Thats how i self-learn, maybe it will work for you.

  • 0
Thank you both for your advice, but I think starting with C may be a good idea after all - kliu0x52 makes a very convincing argument :)
I'll eventually take the time to respond to his argument properly, but I'm not that strongly opposed to learning C first. After all, I started with C++, which is a superset of C. So, C it is, then. It's one of the least productive languages on earth, but it does show you the basics. Just don't stick around with it for too long, you'll grow bored.
Any advice on where to start? Any good books or websites for someone in my position?
A good C tutorial :

http://www.cprogramming.com/tutorial.html#ctutorial

A good book : http://www.amazon.com/Primer-Plus-5th-Step...5/ref=pd_cp_b_1

A good development tool : http://www.microsoft.com/express/vc/

Tip : when you create a new project in Visual C++, make sure you select a general, empty project (I think the default is a Win32 application). Also, since you want to write C, not C++, go to your Project Properties and somewhere in the compiler options you'll be able to set "Compile as C" (it will be Compile as C++ by default).

Have fun. :)

Edited by Dr_Asik
  • 0
Hi guys. I'm not in any computer-related programs in University/College but I've decided that I have too much free time, and I'd like to pick up programming as my hobby (don't really have a real one at the moment). I was thinking of starting with C++ to learn the basics of OO programming, and then moving onto C# or Objective-C... My end goal is to either join an indie game development team until I have enough experience to possibly lead my own way down the line or to write iPhone or Android applications... depending on how I feel after experiencing some programming. I'm not a total newb, I took some high school programming courses (in Java and Visual Basic, I also know HTML/CSS from personal experience) so I'm not going into this completely blind.

There is no generic answer, what tool you should pick depends entirely on what it is you want to do, and not to discourage you, but it's a very long road.

Before you learn any programming language, you should be comfortable with the underlying programming concepts that are common to most languages and understand how computers and operating systems work. Learning a lower-level language like C (or C++ without all the abstract stuff) is helpful here, as it teaches you how the system works without a lot of abstraction.

If you want to write games for Windows, there is really only one path, and that is learning C++ and C (most C features are available from C++ as well, and most C code is valid C++). That is only the start though. After you do that, you have to learn the most common Windows APIs (which are all C, but accessible from C++). Once you've got the foundation of C++ and Windows down, you can move on to learning the basic 3D concepts (provided you understand the math already). Once that's done, you can start learning Direct3D and the other toolkits that make up DirectX (ie sound, input/output, etc). You'll also have to learn the basics of the various graphics and 3D tools, since you'll probably want to make basic mock-up graphics yourself.

If, on the other hand, you want do do iPhone development, you'll have to fork up the cash for a Mac and the development tools (you cannot do this from Windows), and then learn objective-C and the basics of OS X. Android, I believe is focused solely on running Java programs (at least it is on the phones currently on the market), so you'll have to know Java and the APIs it uses.

  • 0
If you want to write games for Windows, there is really only one path, and that is learning C++ and C (most C features are available from C++ as well, and most C code is valid C++). That is only the start though. After you do that, you have to learn the most common Windows APIs (which are all C, but accessible from C++). Once you've got the foundation of C++ and Windows down, you can move on to learning the basic 3D concepts (provided you understand the math already). Once that's done, you can start learning Direct3D and the other toolkits that make up DirectX (ie sound, input/output, etc). You'll also have to learn the basics of the various graphics and 3D tools, since you'll probably want to make basic mock-up graphics yourself.
For a game development career, that's true, but a hobbyist can write games for Windows using C# and XNA, or Python and PyGame or any similar tools, and be a lot more productive (and have that much more fun doing it) than going the long-winded C++/D3D path. Also, all the non-framework-specific things you learn using these tools are valid if you later learn C++ and DirectX. 3D math, pathfinding, game architecture, basic UI skills, etc., those are the most important skills and they apply whatever language you use.
  • 0

Thanks again for the replies!

I doubt you will score a fulltime career without a CS degree. In my university comp sci classes has a few 40-50 year old people trying to get their degree because they can't even find a job with 20+ years of programming experience.

Yeah, I realize this. If programming became more of a hobby for me, I'd have no problem going back to school for a CS degree. Then again, Ken Levine, creator of System Shock & BioShock, had a BA and look at him now... so I have hope.

Thanks for your advice as well, Dr_Asik... especially the Visual C++ settings advice... I probably would not have been able to figure that out myself!

hdood, thanks for the informative reply. In terms of PC game development (starting with Windows), I'd most likely start with 2D games (platformers, RPGs)... of course, this is once I even get to the point of being able to do this, which I realize is down the long road. (Then again, with learning any skill, it takes years so I don't expect programming to be any different... if anything, I imagine it takes longer)

I understand there is a large difference in difficulty in creating 2D vs 3D games as well... but that is far down the road. I guess I shall get my bearings on C/C++ down first. I understand why people go to school to learn this stuff - it can be intimidating without direction from a knowledgeable person.

I'll be checking this thread from time to time, so if anyone has last-minute advice on direction for me, I would appreciate it. :)

  • 0
hdood, thanks for the informative reply. In terms of PC game development (starting with Windows), I'd most likely start with 2D games (platformers, RPGs)...

[...]

I understand there is a large difference in difficulty in creating 2D vs 3D games as well... but that is far down the road.

Yeah, but 2D stuff is actually made with Direct3D now. It's just a 3D scene with no depth so that everything looks flat. If you're running Vista or Windows 7 you're even looking at a Direct3D scene right now. Your browser window is actually two flat triangles put together to create a square, and then the contents of the window is pasted onto them as a texture.

Asik's suggestion of C# and XNA might be an option to get something working faster and familiarize yourself with gaming concepts, even if the language and toolkit isn't very relevant for real game development.

  • 0
It teaches the underpinnings of OO. He's already done OO in Java. C teaches you how OO is implemented. Back when I tutored people and had to explain to them things like static and virtual methods, I often found that the best explanations, the ones that elicited a "oh, I get it now, that makes so much more sense than how I was taught" was when I broke things down and explained how OO was implemented and how that affects why some things in OO are the way that they are.
First, you overestimate his skills in object-oriented programming. He's done a high school class in Java 6 years ago. It takes much more than a single introductory course in programming to learn anything about OOP, even if it's in a pure OO language like Java; moreover, this was a high-school level course and he's likely forgotten most of it.

As a result, learning C won't help him understand the underpinnings of OOP because he barely has any notion of OOP. Rather than bringing him a better understanding of already well-known high-level languages, it will teach him how to do things in a simple procedural way, making the transition to OOP less natural. I think it's better to get a very good feeling of OOP asap because good habits are essentials and bad habits are hard to get rid of. Thus my recommendation of C#. Or even C++ for that matter (even though it sucks as an OO language).

It's the difference between telling someone that they can use a fire extinguisher to put out a fire and explaining to someone what goes on chemically when something burns and how, as a result, you can stop a fire by either depriving it of the reactants--the latter makes the former more understandable and also opens up a wider perspective (e.g., "so that means that I can also stop a fire by dumping sand on it since that too will choke out the oxygen, right?").
Sure. But it's better to teach them first how to use a fire extinguisher, so that if a fire starts before the course is over, at least they'll be able to do something against it. Knowing how to use a fire extinguisher, they could even start earlier practicing other fire-fighting skills such as safely evacuating the building, using the right extinguisher against a certain type of fire, etc. With a higher-level language, you're not only productive faster, you also start learning other important programming skills earlier, such as reusing well-tested code instead of making up your own, decoupling components using interfaces, events, making exception-safe code, etc. It's not wasted time.
You don't have to use the preprocessor that much, and C does not encourage the use of global variables. The so-called "abuse" of casting is just a way of revealing How Things Really Work. And I don't see how memcpy is abusive.
How things really work is that there are no type, no variables, no decimal values, no characters, no internet connections. There are just bits and buses. A C variable is an abstraction over a reserved memory area in assembly. A C for loop is syntactic sugar for a jump and a label in assembly. It's nice to know about it, but you rarely need to know what's happening at that level. And the same applies with C# vs C. Sure it's nice to know what really is a virtual method, but you rarely need to care about that. It's pretty advanced stuff and a beginner doesn't need to know about it right off the bat, it can be overwhelming. I think it's much more encouraging if a beginner can quickly see results with few lines of code and make lots of cool applications, then if he wants to take it to the next level he can look under the hood and try to understand how to write better code.

Also, you shouldn't be thinking your design at such a low-level. You should think your design at the highest possible level (interfaces, objects, packages, etc), and the highest possible level in C is depressingly low. There should be a difference between design and implementation, and C offers little support for that.

As for memcpy() : http://www.theregister.co.uk/2009/05/15/mi...anishes_memcpy/

It's very simple. And insanely powerful. And absolutely essential for anyone who wants to be a real programmer (instead of just a hobbyist). And an understanding of C will make so many things in other languages make more sense.
"Real programming" isn't synonymous with "system programming". Writing a windows application in Visual Basic is real programming. Writing an ASP.NET application for a web browser is real programming. Some programmers make a living out of just that, and they probably know a lot of things about application development a system programmer doesn't know. It's just a different field of specialization. A lot of C programmers today are unwilling to learn anything else than C and they can't do OOP and they can't do functional programming. Is that better? I think it's worse.

As for the rest, I share your views about the importance of learning the fundamentals of computing (yes, including C) and how it's important to know the implications of what you're writing in higher-level languages. Any good software engineering or computer science program in university should teach you that; if they don't, choose another university. But I think new programs should not be written in C unless it's absolutely necessary. Usually you can use at least C++. And usually only part of the program absolutely requires the use of a system language; the rest can be written in Python or Java or whatever. If you take games, for instance, only the engine is written in C++, the actual logic is written in Lua or other scripting languages. I think using these new languages greatly helps to make a smaller codebase, one that's faster to develop, easier to read, maintain and expand upon; and you can easily get good performance with them if you know what you're doing.

Edited by Dr_Asik
  • 0
First, you overestimate his skills in object-oriented programming. He's done a high school class in Java 6 years ago. It takes much more than a single introductory course in programming to learn anything about OOP, even if it's in a pure OO language like Java; moreover, this was a high-school level course and he's likely forgotten most of it.

Fair enough. I'll concede that.

I'll nit on this red herring: that's a really bad article. In version 13.1 of its compiler (first used in VC7.1, XPSP2, and 2K3SP1 and supported the an appropriate SDK update around the time), Microsoft introduced "safe" copy methods that it has been encouraging everyone to move towards (and this was made the default in 14.0). These safe methods (which encompasses far more than memcpy) basically just add "cookies" to the memory that it checks to make sure are not overwritten, and all that MS was doing was saying finalizing this transition to those methods. These are still C functions, but with some nanny-checking. And the funny thing is, despite this new policy change Microsoft is still discovering bugs. As it turns out, Microsoft programmers are not dumb, and various analysis of patches that they've released have revealed that, for the most part, they've covered all the obvious problems; the sorts of problems that are being discovered are much more complex and nuanced and are not going to be solved this way.

"Real programming" isn't synonymous with "system programming". Writing a windows application in Visual Basic is real programming. Writing an ASP.NET application for a web browser is real programming. Some programmers make a living out of just that, and they probably know a lot of things about application development a system programmer doesn't know. It's just a different field of specialization. A lot of C programmers today are unwilling to learn anything else than C and they can't do OOP and they can't do functional programming. Is that better? I think it's worse.

I never said that people should not learn OOP. What I did say and emphasized in my sentence "And an understanding of C will make so many things in other languages make more sense." is that anyone who wants to do real programming needs to know C, not so much because they'll actually use C, but because it is the necessary foundation. Scientists crunching data from an experiment are not going to do 1.2345678 * 8.7654321 on a piece of paper. They will use a calculator or something like MatLab. So does that mean that we should tell elementary school kids, "hey, you don't actually need to do long multiplication in your life, so let's not waste time on that in class". As I said at the end of my post, "I'm not saying that you should abandon C# for C, but rather that if you knew C, then that understanding of the guts of the system will make you a more efficient C# programmer."

I think where we differ is whether that foundation should be established first or is something that you go back and build after you've gotten the rest, and that's a legitimate area of debate. I've long advocated for Perl as a good first get-your-toes-wet language because it's multi-paradigm (you can do classic imperative, you can do some OOP, and you can do functional programming--my personal experience was that Perl helped make learning Lisp easy) and, most importantly, it's extremely forgiving (because even I don't think that the first experience of a programmer should be some cryptic compiler warning :)). And then after that, get into C (I recommended C in this thread because he had already done some programming before, so he was, in my mind, at step 2). Once someone has gotten down the basics (the concept of variables, loops, conditionals, and functions), then it's time to build the formal foundation in part because it's so easy to ignore that foundation it once you've gotten the other stuff down (and it annoys me that so many people do ignore it) and in part because I see knowing the low-level stuff as helping grasp the nuances of the high-level stuff and not so much the other way around.

  • 0
I think where we differ is whether that foundation should be established first or is something that you go back and build after you've gotten the rest, and that's a legitimate area of debate.

This is the main area that concerns me... I'm a little confused as to where to start. You guys are saying that C is a good step two, but I feel that after all this time away from the programming experience I've had, I should maybe start at step one for a month or two... or is that too short/long. Suggestions? :p

  • 0

To be honest, with enough motivation you can start with any language. I started with C++ which is very complex and has lots of quirks, but I read my manual from cover to cover and got fairly proficient with it in about 4 months. Then it was really easy to learn C, Python, C#, Java...

It depends on your philosophy. With, say, C#, you can get results very quickly and it's quite intuitive, so it's a less of a steep curve, but then the difficulty ramps up when you try to learn C or C++. If you start with C or C++, then it's hell in the beginning, but once you're through, the worst is behind you, so to speak.

If you're really serious about programming and want to dive right into the meat, C or C++ are sensible options. If you'd rather have a bit of fun doing it and seeing more powerful programs right away, start with C# (Python, Java, Visual Basic are all good options too, but C# is the most C-like and is generally awesome). What's interesting about C# is that you can download a tool called XNA and easily create 2D or 3D games.

With enough perseverance, both routes lead the same way... I'd personally take the fun one.

  • 0
I doubt you will score a fulltime career without a CS degree. In my university comp sci classes has a few 40-50 year old people trying to get their degree because they can't even find a job with 20+ years of programming experience.

I just stumbled upon this thread and I HAD to comment on this. Even though a CS degree will help you get through the door and have some (depending on skill, experience, etc) influence on a starting from the "middle" instead of from the bottom (junior programmer vs unpaid intern assisting a programming team), it is absolutely not a requirement most of the time. In this industry it dosen't really matter if you have a degree or not, nor does it matter if you've been on the typing end of a terminal for 10 years. What really matters is skill and branding of your persona. I'll be more specific. If you want to make a career on any type of software engineering industry, you can either: a) Get a CS degree and start working as a programmer (preferably at the same time... no sense in losing time ;) ). After you get your degree and a few years down the line you'll probably have the experience and the education to make an early dive into looking into managerial or higher remuneration positions, be it on your current company or a different one. The most important rule here is to have managers that love you, so as to get recommended. b) If you don't have a degree the most important things are to contribute to opensource projects, have developed a few useful tools, or a program used by many (helps if many == "many of your peers"), maybe write a blog where you document ideas, problems, et al., and most important of all, get your name out there (on and off line). The moment you're known for being a superb programmer with documented success in opensource and with tools and useful (for the community) past programming and/or writing on your toolbelt, you've got what any other college educated software engineer dosen't have. Cred.

PD: Or you can also start doing your own thing. Start a startup of some kind and try to make it big... or strive for slow but steady achievement and build a business form it. Also, this is coming from a Chief Software Architect at a decently sized company, with no degree. Well actually I lie, I do have a degree in Finance, but I got my finance degree a year after becoming a Senior Programmer at a different company and I made little mention of it when I was interviewed for the SA position.

  • 0

I've been working on some class testing to get back into C++, so I was once again trying to do things in a game-like way.

I created the following code:

#include &lt;iostream&gt;
using namespace std;

//----------Class Player----------
class Player
{
protected:
	int Health, Damage;
public:
	Player() { set(100, 10); }
	Player(int one, int two) { set(one, two); }

	int getHealth() { return Health; }
	int getDamage() { return Damage; }
	void set(int newHealth, int newDamage) { Health = newHealth; Damage = newDamage; }
	void Attack(Monster enemy);
};

//----------Class Monster----------
class Monster
{
protected:
	int Health, Damage;
public:
	Monster() { set(100, 10); }
	Monster(int one, int two) { set(one, two); }

	int getHealth() { return Health; }
	int getDamage() { return Damage; }
	void set(int newHealth, int newDamage) { Health = newHealth; Damage = newDamage; }
};

//----------Test Function Prototypes----------
void TestPlayerFunctionality();
void TestMonsterFunctionality();
void TestAttackFunction();

//----------Main Function----------
int main()
{
	TestPlayerFunctionality();
	TestMonsterFunctionality();
	//TestAttackFunction();
	system("pause");
	return 0;
}

//----------Player Class Functions----------
void Attack(Monster enemy)
{
	enemy.set(enemy.getHealth() - Damage, enemy.getDamage());
	cout &lt;&lt; "After you attack, the enemy's health is " &lt;&lt; enemy.getHealth() &lt;&lt; "\n";
}

//----------Test Functions----------
void TestPlayerFunctionality()
{
	Player *you = new Player(120, 15);
	cout &lt;&lt; "Your health is " &lt;&lt; you-&gt;getHealth() &lt;&lt; "\n";
	cout &lt;&lt; "Your damage is " &lt;&lt; you-&gt;getDamage() &lt;&lt; "\n";
	delete you;
}

void TestMonsterFunctionality()
{
	Monster *baddy = new Monster(20, 3);
	cout &lt;&lt; "Monster's health is " &lt;&lt; baddy-&gt;getHealth() &lt;&lt; "\n";
	cout &lt;&lt; "Monster's damage is " &lt;&lt; baddy-&gt;getDamage() &lt;&lt; "\n";
	delete baddy;
}

void TestAttackFunction()
{
	Player *you = new Player(120, 20);
	Monster *baddy = new Monster(100, 15);
	you-&gt;Attack(baddy);

	delete you;
	delete baddy;
}

and just about everything works (although I commented out the TestAttackFunction() test to be worked on later.

Upon compiling the code I have there, I receive the following errors:

Line 16: "syntax error : identifier Monster"

Line 51: " 'Damage' : undeclared identifier"

Line 76: "Player::Attack function does not take 1 argument"

I've revisited the Monster class, and it seems to be fine to me.

The Damage variable IS obviously declared within either class (including the Player class which the function refers).

The Player::Attack function does indeed take one argument, this makes no sense.

I was using references, such as "void Attack(Monster const &enemy);" but doing so brought up even more, less understandable errors.

Can anyone figure out what's going on here, because it is totally eluding me.

  • 0

I've been working on some class testing to get back into C++, so I was once again trying to do things in a game-like way.

I created the following code:

#include &lt;iostream&gt;
using namespace std;

//----------Class Player----------
class Player
{
protected:
	int Health, Damage;
public:
	Player() { set(100, 10); }
	Player(int one, int two) { set(one, two); }

	int getHealth() { return Health; }
	int getDamage() { return Damage; }
	void set(int newHealth, int newDamage) { Health = newHealth; Damage = newDamage; }
	void Attack(Monster enemy);
};

//----------Class Monster----------
class Monster
{
protected:
	int Health, Damage;
public:
	Monster() { set(100, 10); }
	Monster(int one, int two) { set(one, two); }

	int getHealth() { return Health; }
	int getDamage() { return Damage; }
	void set(int newHealth, int newDamage) { Health = newHealth; Damage = newDamage; }
};

//----------Test Function Prototypes----------
void TestPlayerFunctionality();
void TestMonsterFunctionality();
void TestAttackFunction();

//----------Main Function----------
int main()
{
	TestPlayerFunctionality();
	TestMonsterFunctionality();
	//TestAttackFunction();
	system("pause");
	return 0;
}

//----------Player Class Functions----------
void Attack(Monster enemy)
{
	enemy.set(enemy.getHealth() - Damage, enemy.getDamage());
	cout &lt;&lt; "After you attack, the enemy's health is " &lt;&lt; enemy.getHealth() &lt;&lt; "\n";
}

//----------Test Functions----------
void TestPlayerFunctionality()
{
	Player *you = new Player(120, 15);
	cout &lt;&lt; "Your health is " &lt;&lt; you-&gt;getHealth() &lt;&lt; "\n";
	cout &lt;&lt; "Your damage is " &lt;&lt; you-&gt;getDamage() &lt;&lt; "\n";
	delete you;
}

void TestMonsterFunctionality()
{
	Monster *baddy = new Monster(20, 3);
	cout &lt;&lt; "Monster's health is " &lt;&lt; baddy-&gt;getHealth() &lt;&lt; "\n";
	cout &lt;&lt; "Monster's damage is " &lt;&lt; baddy-&gt;getDamage() &lt;&lt; "\n";
	delete baddy;
}

void TestAttackFunction()
{
	Player *you = new Player(120, 20);
	Monster *baddy = new Monster(100, 15);
	you-&gt;Attack(baddy);

	delete you;
	delete baddy;
}

and just about everything works (although I commented out the TestAttackFunction() test to be worked on later.

Upon compiling the code I have there, I receive the following errors:

Line 16: "syntax error : identifier Monster"

Line 51: " 'Damage' : undeclared identifier"

Line 76: "Player::Attack function does not take 1 argument"

I've revisited the Monster class, and it seems to be fine to me.

The Damage variable IS obviously declared within either class (including the Player class which the function refers).

The Player::Attack function does indeed take one argument, this makes no sense.

I was using references, such as "void Attack(Monster const &enemy);" but doing so brought up even more, less understandable errors.

Can anyone figure out what's going on here, because it is totally eluding me.

Are your classes in seperate files? If so, be sure to add "#include <monster.h>" at the top of the player class. Also, it is very difficult to follow the organization of this code. I see the function prototypes, but I do not see the seperate function implementations. For example:

void Player::Attack(Monster enemy)
{
}

Those have to be outside of the class itself. :)

  • 0

[edit] wouldn't be bad to make this a sticky thread, so others may be able to use it without me repeating myself. This is a very common question here.[/edit]

if you don't have a compiler (to make .exe) go to http://www.bloodshed.net/dev/index.html download version 4, version 5 is a buggy beta. if you do dl ver.5, then update .exe using cvs at sourceforge.

As for books go, the best one is "The c++ programming language" by Bjarne Stroustup (the inventer of c++) is the best. Itis one of those books that from a beginner to Linus Torvalds (linux guy) and developpers use.

edit: the sites below all helped me in some way or another. First you should learn c programming, then move on to c++ and win32api and other api's.

http://www.cplusplus.com/doc/tutorial/ This site covers a lot! I learned a lot of Object Oriented Programming from here.

http://www.cplusplus.com/ref/ This is a handy site for beginners. This has examples and instructions for many standard library functions.

http://www.sgi.com/tech/stl/ This is handy resource. Most of functions show prototypes and explenations for all of STL.

http://www.allegro.cc This has an easy to use complete game programming library. It's well evolved and used. It supports directx hardware accel through its functions.

http://www.sourceforge.net This is for those of you interrested in developping open source, giving feedback, bug reporting, latest builds, and complete code of some of your favorite apps... and much much more.

http://oopweb.com/CPP/Files/CPP.html This has a list of many tutorials and other resources.

http://www.msdn.microsoft.com A developer's ultimate resource.

http://www.winprog.org/tutorial The best site for learning windows programming. The guy set out to make it easy and quick. I think he certainly achieved his goal.

http://www.cprogramming.com/tutorial.html another c tutorial

http://www.research.att.com/~bs/homepage.html The inventors home page.

Nice tips/resources! Thanks for sharing!

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Compared to the 7735HS it is around 25-30% slower in multi-threaded tasks (according to Google search) I did a review of the 7735HS Beelink SER6 Max in 2023, but thinking about it, it's not comparable to the 7730U. For the example you gave about how it will be used, the 7730U is actually an excellent choice for its power and battery efficiency.
    • Yes guys I know we have a memory and storage price gouging thanks to AI datacenters, so basically you are complaining when these crazy prices get discounts. It all starts to sound like the price of gas and a loaf of bread "was so much cheaper ten years ago!" Go wait until 2030 or whenever this BS ends and skip commenting then? Damned if ya do, damned if ya don't... 🙄
    • 7 Days: Windows 11 turns five, Ford made a mistake, and Starlink plans direct mobile service by Aditya Tiwari 7 Days is a weekly roundup of picks of what's been happening in the world of technology - written with a dash of humor, a hint of exasperation, and an endless supply of (black) coffee. This week's highlights include Apple's $4 billion class-action lawsuit, a smartphone with a 14,000 mAh battery, Google catching up with Anthropic, and the Steam Summer Sale 2026. Let's get started. You can check out the recent issues of the 7 Days weekly roundup. Windows 11 turns five Microsoft's Windows 11 operating system completed five years of existence on June 24 this week. According to the latest data, the controversial operating system now runs on almost 72% of Windows PCs worldwide. The launch of Windows 11 had several dramatic twists and an entire preview build leaked ahead of launch. Ford made a mistake Many would agree that one of the biggest mistakes the automobile industry made was surrendering to the giant touchscreens and removing physical buttons. However, Ford made even more. The company executives said they made a mistake by replacing human engineers with AI. Ford admitted that AI couldn't replace experienced engineers and the company is rehiring veterans to improve quality and cut recall costs. Starlink mobile service Elon Musk's SpaceX wants to use its massive constellation of satellites to power your phone's network. The company is reportedly considering building a terrestrial mobile network to complement Starlink’s satellite coverage and planning to sell mobile phone plans directly to customers in the US as part of a wider expansion of Starlink. Our Features Our coffee-powered team published a platter of editorials, opinion posts, hands-on experiences, and guides. Check them out: Hey Google, these are the Gemini features I want in 2026 You've tried DuckDuckGo and Brave Search, now get serious with SearXNG Why Delta Chat is the best decentralized messenger you have probably never tried We check out the SKG PS700 Neck Massager SKG Hand Massager with Heat OS500 hands on Hands-on with BOOX Tappy: cute little reading accessory Hands-on with the ProtoArc EM25: Affordable ergonomic mouse that focuses on the right things Hands-on with iFlyTek AINote 2 E-Ink tablet: insanely thin and smart This week in software news Catch up on some of the latest software news updates that arrived throughout the week: Firefox 152.02: The latest browser update brought fixes for performance, translation, and cloud storage services. It addressed problems with localization, playback issues with certain MP4 files, and performance issues on websites that perform multiple encryption operations simultaneously. Ubuntu Livepatch: Canonical's zero-downtime service Livepatch arrived on Arm64 devices running Ubuntu Core 26 and Ubuntu 26.04 LTS. Livepatch allows users to apply important kernel updates without any service interruption or rebooting. AMD 26.6.2 driver: The new driver version for Radeon hardware owners brought FSR 4.1 upscaling tech to an entire generation of its products: the RX 7000 series. However, the 26.6.2 FSR driver flew dark clouds over users, breaking many Windows PCs and causing a yellow bang or other launch failures on Windows 10. AMD later pushed the 26.6.3 Hotfix update to fix the issues. Goodbye Notion email: It's been a little over a year since the AI-powered email client launched. The company has announced its shutdown, which will take effect on September 22, and said it doesn't see the point in maintaining a frontend email client when people are moving towards automation. Ventoy version 1.1.14: The biggest change in the Rufus alternative is an updated Secure Boot shim file to resolve the UEFI CA 2023 issue, a compatibility problem that affected Secure Boot environments on some systems. This week in hardware news Image: Valve Catch up on some of the latest software news updates that arrived throughout the week: 14,000 mAh battery: Yes, that's something that iPhone users can only dream of. But a Chinese company is reportedly developing a smartphone with a 14,000mAh battery. If it ever sees daylight, it would be the largest battery ever on a smartphone, possibly offering a week of backup on a single charge. Steam Machine prices: Valve finally confirmed the Steam Machine's pricing. Starting at $1,049 for the 512GB option, storage and the included controller are the biggest differences among the four variants presented. Xbox just got more expensive: Rising costs of storage and memory prompted Microsoft to raise prices. Xbox Series X|S models wth 512GB storage will cost $100 extra, and 1TB models will cost $150 extra. However, the Redmond giant discounted the 2TB models. New NVIDIA supercomputers: The company announced plans to deploy 35 high-performance (HPC) AI supercomputers across Europe this year, primarily at national supercomputer centers, AI factories, and research institutes. Fast fast memory: Samsung built the UFS 5.0 storage solution, which pushes the data transfer speeds to 10.8 GB/s on mobile devices. It can open doors for faster local AI performance, which otherwise doesn't look promising under the current scenario. Custom chips for TikTok: Qualcomm is reportedly in talks with ByteDance to build custom video chips optimized for its massive data center workloads. ByteDance needs hardware that can help it ingest, process, and serve billions of short-form videos daily. OpenAI Jalapeño: The AI giant announced its first custom-designed AI chip developed in partnership with Broadcom. Jalapeño is designed specifically for large language model inference and is the first product from a multi-generation compute platform being developed by OpenAI. Galaxy A27 5G: The new mid-range smartphone from Samsung arrived with a platter of updates over A25 5G, including a 120Hz refresh rate, Infinity-O punch-hole camera design, expanded AI features, and more. Qualcomm takes on NVIDIA: The chipmaker baked the new Dragonfly CPU, High Bandwidth Compute technology, and AI chips to challenge NVIDIA in the AI data center market. Qualcomm said its new lineup improved per-watt performance, token throughput, and total cost of ownership for AI data centers. IBM goes sub-1nm: The company reached a semiconductor milestone by announcing the world's first sub-1-nanometer chip technology, based on a 0.7nm (7-angstrom) node. It can pack nearly 100 billion transistors onto a chip the size of a fingernail. This week in Google News Image: Google Catch up on some of the latest Google news updates that arrived throughout the week: What to expect from the Pixel 11 series: The upcoming lineup is expected to feature four different variants and a price hike due to the global memory shortage. Read our detailed coverage to know about the expected Pixel 11 specs. Stopping Google: The Free Software Foundation Europe urged the European Commission to stop Google from silently reinstalling AI models and requiring registration. Users should be able to fully uninstall AI-based features from Android devices and access interoperability features. Chasing Anthropic: The Claude-maker is making new strides every day in the AI world, but the search giant is struggling to catch up. Google is said to be reshuffling its AI coding "strike team" it created roughly about two months ago, turning it into a broader model-training group amid talent losses at DeepMind. New Google Play billing: Google has faced a long legal battle with Epic Games, and the search giant is rolling out a redesigned Play Store billing and fee structure. Available in the US, UK, and the European Economic Area, it will take effect on June 30. Error-free Sheets? A new feature in Google Sheets allows Gemini to inspect formula errors and apply corrections directly in the spreadsheet. Google said the new feature can handle pretty much everything from basic arithmetic to very complex calculations. Breeze through airports: Google Wallet became the first digital wallet to integrate with TSA PreCheck Touchless ID, a program that enables travelers to move through airport security checkpoints using facial recognition instead of a physical ID or boarding pass. Built-in computer control: Gemini 3.5 Flash got a built-in tool called Computer Use, which allows developers to build agents that navigate browsers, mobile interfaces, and desktop applications. Google Finance: The redesigned platform is now out of beta. Google has added several new features, including portfolio tracking, scheduled market briefings, and a dedicated Android app. An iOS app is planned for later in 2026. This week in Apple News Image: Apple Catch up on some of the latest Apple news updates that arrived throughout the week: Trade secrets reportedly exposed: Apple's manufacturing partner in India, Tata Electronics, confirmed a cybersecurity attack on its systems that may have exposed trade secrets of Apple and Tesla. Hackers reportedly stole up to 630 GB of data and posted up to 200,000 files on the dark web. Grab your payout: Apple is facing a class-action lawsuit in the UK and might end up paying $4 billion (£3 billion) if it loses. The iPhone-maker has been accused of trapping users in iCloud by restricting rivals from fully accessing iOS. The tribunal recently set a full trial date for October 2028. iOS 27 Beta 2: Apple's latest iPhone update is moving forward, and a new beta was pushed this week. While iOS 27 Beta 2 for developers pushed several bug fixes across the system, the AirPort Utility was deprecated; it's no longer available to new users. Price hike: Just like others, Apple has raised prices of several MacBook and iPad models, including the MacBook Neo, which now starts at $699. This comes after reports that this year's iPhone will also become expensive. Second-gen iPhone Fold: While the world is desperate to see Apple's foldable iPhone, leakers have started to talk about its second generation. Apple is expected to launch a successor in Fall 2027, featuring a wider folding display while reusing the same screen found in the first generation. The search for memory: Apple is reportedly looking at blacklisted Chinese companies amid rising memory chip prices. The company is seeking clearance from the Trump administration to purchase memory from ChangXin Memory Technologies (CXMT). This week in Meta news Image: Meta Catch up on some of the latest Meta, WhatsApp, and Instagram updates that arrived throughout the week: WhatsApp gets a new final boss: Mark Zuckerberg announced that CRED's Kunal Shah will become the next global head of WhatsApp, as Will Cathcart steps down and moves to a new role at Meta. The social media giant invested money in CRED through a Series H funding round. AI glasses in 26 styles: A new line of Meta Glasses launched in partnership with EssilorLuxottica. Starting at $299, it comes in more than two dozen styles across different colors, lenses, and frames. More ways to doomscroll: Instagram for TV is now available on Samsung smart TVs launched in 2020 and later years. The company also announced that it's testing several new features on Instagram for TV, bringing it closer to YouTube and Netflix. This week in AI news Image: Microsoft Catch up on the latest artificial intelligence news updates that arrived throughout the week: Water-saving data center: Microsoft is building a gas-powered AI data center with a capacity of 2 gigawatts. The company will deploy a closed-loop cooling system, saying that its total lifecycle water use will be "only a fraction of that consumed annually by a typical fast-food restaurant.” OpenAI beats Claude Mythos: GPT-5.5-Cyber got a limited release for verified defenders. It scored 85.6% on CyberGym, compared with 81.8% for GPT-5.5 and 83.8% for Claude Mythos 5. The AI giant also announced a limited preview of its new GPT-5.6 model series, whose flagship model, GPT-5.6 Sol, is targeted at demanding reasoning and agentic workloads. Proceed with caution: The Trump administration instructed OpenAI to limit the distribution of GPT-5.6 to a small group of government-approved partners rather than the general public, as has happened in the past. Claude Tag: Anthropic launched its new AI teammate for Slack, enabling teams to delegate tasks to Claude directly within Slack channels. What makes it different is that it's designed to operate as a shared assistant for an entire team rather than a single user. Challenging US dominance: The UK government has funded £60 million ($70 million) to Oxford and UCL to keep the country in the AI race by building open-source, low-hardware alternatives. The two organizations will share the money over six years. Paying for AI development: One cost is the loss of human jobs. Oracle laid off about 21,000 employees (13% of its workforce) amid increasing AI adoption. The software giant said that AI advancement and adoption "may continue to result in reductions to our workforce." GitHub strips features: It removed the ability to manually detect an AI model from its Copilot Free and Student plans. In other words, its automatic routing system is the only way to choose a model. Are you a copycat? Anthropic accused Alibaba of creating about 25,000 fraudulent accounts to copy Claude's capabilities at scale. It told US lawmakers that operators linked to Alibaba generated 28.8 million exchanges with Claude between April 22 and June 5, 2026. Reserve my memory: The semiconductor company Micron revealed that AI companies are spending billions to lock up its memory years in advance. Its customers have locked in $22 billion worth of memory supply commitments. Another AI battle: A publisher group that collectively owns 400 newspapers sued OpenAI and Microsoft for scraping their content to build AI chatbots such as ChatGPT and Copilot without compensation. Anthropic AI ban: The US government partially reversed the Anthropic AI ban, allowing it to restore Claude Mythos 5. However, it can only be deployed for a limited set of US organizations that operate and defend critical infrastructure. This week in Microsoft News In some of the hottest stories of the week: Windows 10 quietly gained a year of support and updates, Windows 11 KB5095093 released with a long list of features, and Windows 11 26H2 is finally getting the ability to disable web search results in Windows 11 Search. You can check out Taras's freshly baked Microsoft Weekly roundup to catch up on all the interesting stories this week. This week in science news Image by Pascal Küffer via Pexels Catch up on some of the latest science and out-of-this-world updates that arrived throughout the week: 13 billion-year-old secret: Scientists found that the universe's first molecule (helium hyride) reacted with hydrogen much faster in cold temperatures than previously believed. It's a new breakthrough that changes our understanding of early star formation. Cosmic Living Fossil: Astronomers found CR3, a surprisingly pristine 11.5-billion-year-old galaxy dubbed a "living fossil." It suggests the universe's first generation of stars formed much later than previously assumed. Einstein's 100-year-old theory: Thanks to relativity, researchers calculated that clocks on Mars tick 477 microseconds faster per day than on Earth. This minute gravitational difference is crucial for synchronizing future interplanetary space missions. Don't panic: NASA's James Webb Telescope finally eliminated the threat of asteroid 2024 YR4 striking the moon in 2032. The rocky giant will give us a safe fly-by without causing any harm. This week in gaming? The latest issue of Pulasthi's Weekend PC Game Deals curates several exciting games on sale this week. RollerCoaster Tycoon 3 Complete Edition and Voidwrought have replaced the old titles in this week's Epic Games Store giveaway. For Xbox Free Play Days, the new titles include House Flipper 2, Blades of Fire, and Assetto Corsa Competizione. Steam Summer Sale 2026 kicked off with discounts for everything from the newest games and retro gems to all sorts of DLC packs, until July 9. Meanwhile, NVIDIA GeForce NOW added support for several new titles, including Dark Scrolls, SAND: Raiders of Sophie, and EMPULSE. That said, here are some more stories from the gaming world: Age of Empires Mobile comes to PC, here's how to carry over progress from your phone Xbox Insiders get Xbox 360 achievements and Gamertag character upgrades Grand Theft Auto VI pricing revealed alongside Ultimate Edition and pre-loading details Sony announces Bungie layoffs that will affect "significant number of employees" From the review corner This week, Steven published a review of the TerraMaster F4-425 Pro AI-powered NAS, featuring an all-metal exterior on the lines of the four-bay F4-425 series. Powered by the octa-core Intel Core N350, the TerraMaster F4-425 Pro is highly energy-efficient, operates quietly, and offers three M.2 slots. On the flip side, OpenClaw support requires removing security hardening (SPC), AI requires a paid subscription, the software feels like a beta, and the rubber feet constantly come unstuck. ZimaBoard 2 1664 Starter Kit Another NAS setup reviewed this week is the ZimaBoard 2 by IceWhale Technology. It comes in a small footprint with great modern hardware through a combo of Intel N150 and DDR5 memory support. On the downside, the memory is not upgradeable, ZimaOS is a bit barebones, factory reset requires USB flashing, and there is no automatic backup via the mobile app. Synology's BeeCamera software Christopher wrote his review of the software that powers BeeCamera Plus and said "the BeeCamera app is a great way to add private home monitoring to your network but there are some limitations." It's free with an easy setup process, fast response time, and good AI and detection features. However, there is no desktop version; it only works with Synology cameras, some configurations are difficult to set up on a phone, and it lacks the features of the surveillance station. More price drops! We got you covered with some hot tech deals all week. For some reason, if you missed out on a great discount, here is a summary of some recent deals that are still alive: Onkyo Dolby Atmos AV receivers are really solid deals 4TB TEAMGROUP MP44Q, 2TB T-Force G50, and 2TB WD My Passport SSDs drop to great prices Edifier S3000MKII hi-fi audiophile grade bookshelf speaker is at its lowest price now The best controller for XBOX and PC is down to the lowest price Limited time Prime Day deal cuts price of this Hisense 65" 4K smart TV in half To view all of our recent deals, click here. So, these were some of the biggest tech news and other updates from this week. There will be more issues of our 7 Days series in the coming weeks and months, so stay tuned. You can also support Neowin by registering for a free member account or subscribing to extra member benefits, along with an ad-free tier option. Have a great weekend!
    • Zen Browser 1.21.4b by Razvan Serea Zen Browser is a privacy-focused, open-source web browser built on Mozilla Firefox, offering users a secure and customizable browsing experience. It emphasizes privacy by blocking trackers, ads, and ensuring your data isn't collected. With Zen Mods, users can enhance their browser experience with various customization options, including features like split views and vertical tabs. The browser is designed for efficiency, providing fast browsing speeds and a lightweight interface. Zen Browser prioritizes user control over the browsing experience, offering a minimal yet powerful alternative to traditional web browsers while keeping your online activity private. Zen Browser’s DRM limitation Zen Browser currently lacks support for DRM-protected content, meaning streaming services like Netflix and HBO Max are inaccessible. This is due to the absence of a Widevine license, which requires significant costs and is financially unfeasible for the developer. Additionally, applying for this license would require Zen to be part of a larger company, similar to Mozilla or Brave. Therefore, DRM-protected media won't be supported in Zen Browser for the foreseeable future. Zen Browser offers features that improve user experience, privacy, and customization: Privacy-Focused: Blocks trackers and minimizes data collection. Automatic Updates: Keeps the browser updated with security patches. Zen Mods: Customizable themes and layouts. Workspaces: Organize tabs into different workspaces. Compact Mode: Maximizes screen space by minimizing UI elements. Zen Glance: Quick website previews. Split Views: View multiple tabs in the same window. Sidebar: Access bookmarks and tools quickly. Vertical Tabs: Manage tabs vertically. Container Tabs: Separate browsing sessions. Fast Profile Switcher: Switch between profiles easily. Tab Folders: Organize tabs into folders. Customizable UI: Personalize browser interface. Security Features: Inherits Firefox’s robust security. Fast Performance: Lightweight and optimized for speed. Zen Mods Customization: Deep customization with mods. Quick Access: Easy access to favorite websites. Open Source: Built on Mozilla Firefox with community collaboration. Community-Driven: Active development and feedback from users. GitHub Repository: Contribute and review the source code. Zen Browser 1.21.4b changelog: New Features Updated to Firefox 152.0.2 and 152.0.3 Added 'Edit pinned tab' context menu item to manually set a pinned tab's URL Added 'Add Route for Domain' context menu item to quickly add a tab's domain to the Space Routing settings Fixes Prevent sidebar from flickering when moving a tab (#14131) Full-screening while on a glance tab will now expand the glance tab to a normal tab (#11766) Fixed space routing tabs opening in background when it should be in foreground (#14183) Other minor bug fixes and improvements. Download: Zen Browser | 90.2 MB (Open Source) Download: Zen Browser ARM64 | Other Operating Systems View: Zen Browser Home Page | Screenshots 1 | 2 | Reddit Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Reacting Well
      JuvenileDelinquent earned a badge
      Reacting Well
    • One Month Later
      Excellence2025 earned a badge
      One Month Later
    • Week One Done
      Excellence2025 earned a badge
      Week One Done
    • Week One Done
      flexorcist earned a badge
      Week One Done
    • Week One Done
      Woland13 earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      505
    2. 2
      +Edouard
      205
    3. 3
      PsYcHoKiLLa
      151
    4. 4
      Steven P.
      72
    5. 5
      FloatingFatMan
      69
  • Tell a friend

    Love Neowin? Tell a friend!