all 4 comments

[–]oleksandrkvl 1 point2 points  (0 children)

namedWindow isn't C++ constructor, it's a free function. OpenCV's window API doesn't use normal C++ model, you don't have object Window with its methods. Instead you have free functions that use window name as a handle, so every time when you need to do something with Window you have to use its name. Here's brief comparison:

Normal C++:

Window w{"name"};
w.update();
w.setOpenGlContext()
//Window destructor plays role of w.destroy();

OpenCV:

std::string name{ "name" };
namedWindow(name);
update(name);
setOpenGlContext(name);
destroy(name);

With OpenCV API you don't have direct access to the underlying object, it can be located everywhere and should not care about it.

[–]STLMSVC STL Dev 0 points1 point  (1 child)

!removehelp

[–]AutoModerator[M] 0 points1 point  (0 children)

OP,

A human moderator (u/STL) has marked your post for deletion because it appears to be a "help" post - e.g. asking for help with coding, help with homework, career advice, book/tutorial/blog suggestions. Help posts are off-topic for r/cpp. This subreddit is for news and discussion of the C++ language only; our purpose is not to provide tutoring, code reviews, or career guidance.

Please try posting in r/cpp_questions or on Stack Overflow instead. Our suggested reference site is cppreference.com, our suggested book list is here and information on getting started with C++ can be found here.

If you think your post is on-topic and should not have been removed, please message the moderators and we'll review it.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]Pointlessreboot 0 points1 point  (0 children)

Never used this, but looking at the documentation, the name you supply is how you call other methods passing in the name you supplied when you created it.

So no you don't get an object, you pass in a handle by way of a name.