Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: I don't use printf enough

by Plankton (Priest)
on Oct 22, 2003 at 16:57 UTC ( #301281=note: print w/ replies, xml ) Need Help??


in reply to I don't use printf enough

I find it kinda of ironic that in C++ the "preferred" way of writting to STDOUT is like so:

cout << "text text " << obj->method1() << " more text " << endl;

Plankton: 1% Evil, 99% Hot Gas.


Comment on Re: I don't use printf enough
Download Code
Re: Re: I don't use printf enough
by jryan (Vicar) on Oct 22, 2003 at 22:08 UTC

    I assume you mean:

    cout << "text text " << obj.method1() << " more text " << endl;

    And would you explain why you find this ironic?

      Presumably, he/she finds it ironic beacuse
      cout << "text text " << obj.method1() << " more text " << end1;
      is like using string concatenation in Perl. The root node says to use printf sometimes. printf is a C function, yet it would not be the preferred way of doing things in C.

      So to prefer printf in Perl when something like the above (preferred) C snippet exists, is ironic.

        printf is a C function, yet it would not be the preferred way of doing things in C.

        That's half right - printf is a C function, but it is not preferred in C++. It is preferred in C, of course.

        The reason why printf is not the best way in C++ is that the compiler cannot check the variable types. If you use "%s" to print a string, and then use an integer variable instead, the program crashes at run time. With perl it would just convert the integer into a string and not crash, and with C++ style I/O, it would print the integer as a string. Also, printf cannot be extended to print objects, it is only able to print a few built in types.

      His c++ syntax is just fine, his obj can be understood as a pointer to an object:

      #include <iostream.h> class aclass { public: int first_perfect_number(void); }; int aclass::first_perfect_number(void) { return 6; } int main() { aclass * ap = new aclass(); cout << "first perfect number is: " << ap->first_perfect_number() +<< endl; }

        Right, but why on earth would you assume a pointer to an object in this case? The original bit wasn't talking about a reference to a perl object, so I assumed it was a typo. Just because the syntax passes the compiler doesn't mean it is what he meant. :)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://301281]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (9)
As of 2015-07-03 06:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (48 votes), past polls