473,769 Members | 2,134 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Confused about learning C++

Dear,

I have experince in C( numerical projects, like engineering problems,
scientific applications) I have the basic notion of C++ also, I have
read Accelerated C++ until Chapter 7, however it seems that it
discusses the std and the other part of the language with your own
abstractions. Is that better to read a book first on the basic concepts
of C++ language (but not the C part) that gives the basics as if the
reader is a beginner such as

C++ Primer Plus by Prata
Teach Yourself C++ in 21 days by Liberty...

or any other book that you would recommend for first step reading. I am
a bit confused how to proceed.

Thx in advance.

Regards.

Feb 19 '06 #1
36 2542
Hi there,

I suggest that you should do plenty of practice before you move to
senior topics.
When you've done enough practice, you'll understand it naturally.

Reagrds.

Feb 19 '06 #2
utab wrote:
Dear,

I have experince in C( numerical projects, like engineering problems,
scientific applications) I have the basic notion of C++ also, I have
read Accelerated C++ until Chapter 7, however it seems that it
discusses the std and the other part of the language with your own
abstractions. Is that better to read a book first on the basic concepts
of C++ language (but not the C part) that gives the basics as if the
reader is a beginner such as

C++ Primer Plus by Prata
Teach Yourself C++ in 21 days by Liberty...

or any other book that you would recommend for first step reading. I am
a bit confused how to proceed.


I have no book recommendations , however, I would suggest to learn C++
concepts in the following order:

* standard library: containers, iterators, algorithms, streams.
* classes.
* function objects.
* exceptions and flow control via throw/catch.
* templates.
* smart pointers (e.g., tr1::shared_ptr <> )
* raw pointers and arrays.

I didn't do it in that order; and I feel that, as a consequence, it took me
quite some time before simple and straight forward solutions to common
problems came to me naturally.
Best

Kai-Uwe Bux
Feb 19 '06 #3

"utab" <um********@gma il.com> skrev i meddelandet
news:11******** **************@ z14g2000cwz.goo glegroups.com.. .
Dear,

I have experince in C( numerical projects, like engineering
problems,
scientific applications) I have the basic notion of C++ also, I have
read Accelerated C++ until Chapter 7, however it seems that it
discusses the std and the other part of the language with your own
abstractions. Is that better to read a book first on the basic
concepts
of C++ language (but not the C part) that gives the basics as if the


The point of this book is that the standard library *is* an integral
part of the C++ language. It is a clear intention that you should
learn to use the library classes, and build your own abstractions from
that.

Part of your confusion might be that this book treats C++ a language
totally different from C. A very good idea, IMO.
Bo Persson
Feb 19 '06 #4
> I have no book recommendations , however, I would suggest to learn C++
concepts in the following order:

* standard library: containers, iterators, algorithms, streams.
* classes.
* function objects.
* exceptions and flow control via throw/catch.
* templates.
* smart pointers (e.g., tr1::shared_ptr <> )
* raw pointers and arrays.

I didn't do it in that order; and I feel that, as a consequence, it took me
quite some time before simple and straight forward solutions to common
problems came to me naturally.


I don't suggest learning C++ concepts with any particular order.
Instead, swallow the basics of everything then come back and revisit all
of those and come back...the iteration never quite ends for me.

Ben
Feb 19 '06 #5
I have no book recommendations , however, I would suggest to learn C++
concepts in the following order:

* standard library: containers, iterators, algorithms, streams.
* classes.
* function objects.
* exceptions and flow control via throw/catch.
* templates.
* smart pointers (e.g., tr1::shared_ptr <> )
* raw pointers and arrays.


I practically learned it all the other way round!

I would always advocate teaching the actual language itself before moving
on to its Standard Libraries.

For instance, I would teach:

+ Variables
+ Pointers
+ Arrays
+ Functions
+ Structures
+ Exceptions
+ Templates
+ Classes

After that, I'd show them the Standard Library.

-Tomás
Feb 19 '06 #6
In article <11************ **********@z14g 2000cwz.googleg roups.com>,
"utab" <um********@gma il.com> wrote:
Dear,

I have experince in C( numerical projects, like engineering problems,
scientific applications) I have the basic notion of C++ also, I have
read Accelerated C++ until Chapter 7, however it seems that it
discusses the std and the other part of the language with your own
abstractions. Is that better to read a book first on the basic concepts
of C++ language (but not the C part) that gives the basics as if the
reader is a beginner such as
I'm not sure what "the basic parts of C++ (but not the C part)" is. Are
you talking about things like keywords that are in C++ but not C?

I don't have the book, but in looking over the source code from the web
site, I'd say they are doing a pretty good job of it.

What is it that you feel you are missing out on? You'll be writing your
own classes soon (about chapter 9 it looks like) and you already are
using structs...

C++ Primer Plus by Prata
Teach Yourself C++ in 21 days by Liberty...

or any other book that you would recommend for first step reading. I am
a bit confused how to proceed.


I suggest you continue with the book you have. Do all the exorcises in
it. Ask us questions is you have problems, and/or find a tutor in your
area who is willing to work with you...
--
Magic depends on tradition and belief. It does not welcome observation,
nor does it profit by experiment. On the other hand, science is based
on experience; it is open to correction by observation and experiment.
Feb 19 '06 #7

"Tomás" <NU**@NULL.NULL > skrev i meddelandet
news:gG******** **********@news .indigo.ie...
I have no book recommendations , however, I would suggest to learn
C++
concepts in the following order:

* standard library: containers, iterators, algorithms, streams.
* classes.
* function objects.
* exceptions and flow control via throw/catch.
* templates.
* smart pointers (e.g., tr1::shared_ptr <> )
* raw pointers and arrays.


I practically learned it all the other way round!

I would always advocate teaching the actual language itself before
moving
on to its Standard Libraries.

For instance, I would teach:

+ Variables
+ Pointers
+ Arrays
+ Functions
+ Structures
+ Exceptions
+ Templates
+ Classes


That's exactly what the "Accelerate d C++" book is trying to avoid.
:-)

By introducing streams and strings in chapter 1, and pointers (as "a
kind of random access iterators") in chapter 10, the book is teaching
C++ as a language of its own. Not some kind of C-language.

The focus is on std::string, not C style strings, on using what is
already in the library, like algorithms and containers, introducing
the iterator concept while you go. It then goes on to introduce
generic functions (write your own templates!), class types,
constructors and destructors.

Only then, and mostly to be able to explain what the 'const char*'
type means for a string literal, does it mention pointers and arrays.
Reluctantly!

Then, in chapters 11 and 12, we go on the define abstract data types,
and classes that behave like values. Much more useful, and important
in C++!
If you haven't tried it, you really should. I had great fun reading
it!

:-)

Bo Persson
Feb 19 '06 #8
On Sun, 19 Feb 2006 11:41:21 +0100, "Bo Persson" <bo*@gmb.dk> wrote:
The point of this book is that the standard library *is* an integral
part of the C++ language.
No, a language is a language and a library is just a library, even
though it's the Standard library.
It is a clear intention that you should
learn to use the library classes, and build your own abstractions from
that.
According to Stroustrup, C++ is a 'Multiparadigm Language'. I don't
see the point in learning the most difficult and unser unfriendly
paradigm first or even solely.
Part of your confusion might be that this book treats C++ a language
totally different from C.
The OO paradigm is much more different from procedural C programming
than the moderately functional STL/generic programming paradigm. The
main difference is template instead of preprocessor obfuscation. A
good C programmer can understand the basics of STL in 10 minutes.
A very good idea, IMO.


I beg to differ.

Best wishes,
Roland Pibinger
Feb 19 '06 #9
* Roland Pibinger:
* Bo Persson:
The point of this book is that the standard library *is* an integral
part of the C++ language.


No, a language is a language and a library is just a library, even
though it's the Standard library.


Reality check: the built in language feature operator new throws a
std::bad_alloc exception, which comes from the library. nothrow, which
is part of the core syntax, also comes from the library. There isn't a
clear demarcation between core language and library.

Many features that are integral parts of other languages have been left
out in the C++ core language because they could be implemented as
library solutions.

Thus, in comparision with other languages, one must include at least
those parts of the standard library (vector, string, and the upcoming
array, tuple and shared_ptr classes), and the question is where one
subjectively draws the line between core language support and pure
"added value". The authors of Accelerated C++ seemingly think most of
the library belongs with the language proper. I think less of it
belongs with the language proper (I especially hate iostreams!), but
nevertheless I agree with the viewpoint that using the library is the
only good way to introduce C++ -- because raw pointers and arrays and
C i/o and the like is just too error-prone, and stands in the way.

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
Feb 19 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
1821
by: m_a_t_t | last post by:
Ok, I'm reading "The C Programming Language: 2nd Edition" and I'm on chapter 1.5.1 and here's the program you're sposed to make: #include <stdio.h> /* copy input to output; 1st version */ main() { int c;
2
2416
by: CA | last post by:
I am learning about attributes and at this point, I am completely confused. I have posted some code below. I do not understand the following points: 1) The TestAttribute does not appear for the StructureChanged field, i.e. the GetCustomAttributes() method does not return any attributes event though the field has been flagged.
12
1890
by: Blaze | last post by:
I am doing the first walk through on the Visual Studio .Net walkthrough book to learn a little about programming. I am having issues with the first tutorial not running correctly. It seems that the build fails with what the book tells me to do. Specifically, I am doing this: public authors1 GetAuthors() { authors1 authors = new Authors1();
3
2169
by: redefined.horizons | last post by:
I've been reading about Python Classes, and I'm a little confused about how Python stores the state of an object. I was hoping for some help. I realize that you can't create an empty place holder for a member variable of a Python object. It has to be given a value when defined, or set within a method. But what is the difference between an Attribute of a Class, a Descriptor in a Class, and a Property in a Class?
43
1935
by: perryche | last post by:
I have searched the site and probably came across dozens of posts... I am somewhat confused about the replies... here is my situation, see if someone can point me to where to go: I have splitted up the DB to FE and BE, I want to autocompact BE when: 1. all users exited FE (or if not out by certain time of the day and it is idle (forgot to logout), force them out of it to do a compact) or 2. Last person out of accessing the BE (FE exited)
6
1392
by: arnuld | last post by:
hai all, 1st of all this post is not about C++, it is about general programming, problems i am facing in learning the concepts & reflects my experience with C and C++ . i know about functions, variables, compilers, interpreters etc etc but i have never done any real-life coding. i am trying to learn C++ as most of the jobs in my area are for the graduates/PGs carrying these skills: 1.) C++
4
2015
by: mattmao | last post by:
I am moving onto the tough part in learning C:( First, about the declaration of a user defined structure: I found this syntax in my lecture notes: struct userinfo { char username; int age;
8
2251
by: Tom | last post by:
Inserting text into a RichTextBox is a snap! >> textBox1.Text += "Enter string 0000\n"; textBox1.Text += "Enter string 0001\n"; textBox1.Text += "Enter string 0002\n"; textBox1.Text += "Enter string 0003\n"; How do I then go back and programmatically remove let's say line #2? As amazingly simple as this sounds ... I am equally dumbfounded by not
24
1783
by: Bill Cunningham | last post by:
It is very easy to see what I am trying to do with this code: #include <stdio.h> main(){ char name; printf ("Enter -"); fflush (stdout); fgets (name,200,stdin); printf("is? ",name);}
0
10216
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10049
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9997
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9865
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8873
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7413
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6675
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
2
3565
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2815
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.