c# - c++ - using std namespace and dependancies -
while trying familiarize myself c++ , concepts, came across
using namespace std and
#include <iostream> my simple code follows
#include "stdafx.h" #include "consoleapplication5.h" #include <iostream> int main() { std::cout << "hi"; return 0; } using visual studio 2015 community, uses intellisense, shows
cout
uses following
std::ostream std::cout
as c# programmer, confuses me slightly. :
std::ostream
being return type while
std::cout
being method/parameter passed or
std::ostream
a dependancy of
cout
update (after archimaredes answer)
in c#, 1 can use following:
streamwriter srwrite; or
streamwriter srwrite = new streamwriter(string filepath) or 1 can use:
streamwriter srwrite = new streamwriter(new networkstream(socket.getstream())); each case object of type namely
streamwriter is assignable new object or existing file or networkstream.
i tried same after mentioned (excuse c# mentality) std::ostream x = new std:ostream returns no default constructor.
could add how std::ostream , std::cout relate each other, creates/initalizes other. concept still bit vague me.
std::cout object in global scope, of type std::ostream. when call std::cout << "hi", invoking operator<<() method std::cout object left-hand value , string literal "hi" right-hand value.
cout , ostream inside std namespace, hence std:: prefix. if place using namespace std in code, allows omit prefixes, e.g.
#include <iostream> using namespace std; int main() { cout << "hi"; // no error because 'std' unnecessary } namespaces used prevent name conflicts, in same way c#; practice not use using namespace directives entire source code files in order prevent name conflicts in code.
edit in response op's update
std::cout instance of std::ostream. illustrate this, consider following:
class a_class { public: a_class() {} void foo() {} }; int main() { a_class an_instance; an_instance.foo(); } a_class class, while an_instance instance of a_class.
similarly; ostream class, while cout instance of ostream.
edit in response op's comments
this may confusing user of c#, exact same concept as:
int n = 5; whereint type, , n variable name.
Comments
Post a Comment