19:00:45 <x1sc0> #startmeeting 19:00:47 <IZBot> Meeting started Thu Mar 14 19:00:45 2019 UTC. The chair is x1sc0. Plugin info at http://wiki.debian.org/MeetBot. 19:00:48 <IZBot> Useful Commands: #action #agreed #help #info #idea #link #topic. 19:01:03 <x1sc0> Hi, anyone around for the C++ lecture ? 19:01:09 * erAck waves 19:01:26 <x1sc0> erAck, do you have the minutes from the last lecture? 19:01:31 <x1sc0> were they logged ? 19:01:49 <erAck> x1sc0: I think I did the logging 19:01:56 * htietze salutes 19:02:02 <erAck> should be in the usual directory 19:02:16 <izabela[m]> good evening 19:02:26 <x1sc0> let me check 19:03:12 <x1sc0> oh yep, I found them 19:03:34 <x1sc0> izabela[m], sorry for the short notice about the lecture 19:03:37 <klevis> Hello! I am here for the lecture. Right now I am doing the build for LO on the VM you have provided me with. 19:03:43 <x1sc0> did you have time to watch the video? 19:04:10 <x1sc0> klevis, welcome! from Tirana as well ? 19:04:34 <izabela[m]> x1sc0: no problem 19:04:42 <klevis> Yes I am from Tirana too 19:05:04 <x1sc0> cool 19:06:29 <x1sc0> #topic C++ lecture - Classes and Arrays 19:06:37 <x1sc0> so any question on the topic ? 19:07:58 <htietze> I do 19:08:35 <htietze> 1. If I got Marty right, the .h and .cxx have to be named like the class. Sounds strange, am I wrong? 19:09:09 <htietze> 2. Marty hasnt said anything about destructors. If I've seen it we do have those methods. Is it needed (think so). 19:09:55 <erAck> htietze: files don't have to be named like the classes, it's just one convention 19:12:39 <erAck> htietze: dtors depends; if you don't define one then the default dtor will be used by the compiler (which is to call dtors on all member variables of the class, and then the dtors of classes of which the class derived) 19:13:22 <htietze> erAck: #1 convention: okay, got it. 19:14:31 <htietze> #2 Let's say I create an array in the constructor. Don't I have to clean it up manually? 19:15:36 <erAck> htietze: if you use std::vector or any other that has a dtor then no; unless it holds something that needs manual cleanup by itself 19:16:48 <mikekaganski> htietze: also having a C-style array managed by a smart pointer such as std::unique_ptr allows to clean it up automatically 19:20:44 <htietze> Okay, there's a difference to Pascal. You have to clean up your mess yourself. But I think good style is not a blocker in C++. Nice :-). 19:21:49 <mikekaganski> Having proper dtors that allow one to automate cleanup *is* a good style; and the whole concept of RAII is built upot that ;-) 19:23:13 <klevis> I want to express my interest to participate in GSOC with LibreOffice. I do have some knowledge in programming languages such as Python, C++ and Java. Ever since I have been involved with LO with the lectures and online meeting, seeing such a friendly and serious community, I have decided to go through GSOC with LibreOffice as I think it will be best for me to advance in programming and the same time help the development of LibreOffice :) 19:23:21 <erAck> for those who don't know RAII: 19:23:23 <erAck> #link https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization 19:25:42 <erAck> htietze: to that regard there's no difference, if you have produced a mess you have to clean it up yourself ;) 19:26:17 <erAck> klevis: good decision :) 19:28:51 <mikekaganski> htietze: when talking about abstract "array created in ctor", it's hard to tell what should be done in dtor. If that's something like member of type std::vector<int>, it's one thing; if that's a member of type void**, then it's totally different... and there are things in the middle :-) 19:30:15 <htietze> mikekaganski: Something dirty like int* foo[](); in ctor and methods to change the size. 19:31:33 <mikekaganski> htietze: that would definitely mean you have to clean it up in dtor; and also mean that you are not using good style... 19:32:08 <mikekaganski> htietze: there are ~no reasons novadays to use monsters like that 19:33:11 <mikekaganski> if you replace it with std::vector<int>, you would have all the size-changing options with easo of memory management 19:33:56 <mikekaganski> htietze: and even when you need to pass raw pointer to const array somewhere, std::vector allows you to have it 19:36:04 <htietze> std::vector is a cool thing 19:36:06 <x1sc0> klevis, that's great! normally we ask applicants to work on an easyhack before the application deadline 19:36:44 <klevis> Some things aboout me: I have studied for four years in professional high school in Electronics field (Electronic devices and circuit theory, computer architecture, telecommunication, and was introduced to C++ and Java), right now I am first year student in university, in Software Engineering. 19:36:58 <mikekaganski> htietze: there are other options also, with different constraints and overheads, like std::array e.g. 19:38:10 <x1sc0> klevis, so you have ~3 weeks to work on it 19:38:35 <x1sc0> this way we can evaluate your skills 19:42:21 * Sweetshark is late again. Had to fight my router, which wasnt providing me da internetz for some reason. 19:42:42 <x1sc0> Sweetshark, hey! 19:42:57 <x1sc0> so, any other question on today's topic ? 19:44:31 <x1sc0> izabela[m], klevis ? 19:44:37 <klevis> I understand x1sc0, will definitely do that. The application deadline you mean April 9? 19:44:51 * mikekaganski thinks about all those peculiarities of the classes in c++, with private/protected/publics; statics; virtual and multiple inheritance; ... and is curious why there are no questions... he must be outdated, and novadays it's some easy stuff ;-) 19:45:02 <klevis> Oh right, 3 weeks to work on it 19:45:07 <klevis> I got it! 19:45:10 <izabela[m]> x1sc0: no questions. i am following the discussions 19:45:18 <x1sc0> klevis, check https://wiki.documentfoundation.org/Development/GSoC/2019 19:45:47 <x1sc0> and this page for easyhacks: https://wiki.documentfoundation.org/Development/EasyHacks 19:46:00 <erAck> mikekaganski: questions arise when using ... 19:46:06 <mikekaganski> erAck: true 19:47:04 * x1sc0 agrees 19:48:13 <x1sc0> well, if there are no further questions, I guess we can close the meeting 19:48:30 <x1sc0> #endmeeting