Deutsch English Français Italiano |
<van2ok$3f3q8$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!npeer.as286.net!npeer-ng0.as286.net!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Thiago Adams <thiago.adams@gmail.com> Newsgroups: comp.lang.c Subject: Re: Top 10 most common hard skills listed on resumes... Date: Wed, 28 Aug 2024 08:47:32 -0300 Organization: A noiseless patient Spider Lines: 66 Message-ID: <van2ok$3f3q8$1@dont-email.me> References: <vab101$3er$1@reader1.panix.com> <vad7ns$1g27b$1@raubtier-asyl.eternal-september.org> <vad8lr$1fv5u$1@dont-email.me> <vaf7f0$k51$2@reader1.panix.com> <vafgb2$1to4v$2@dont-email.me> <vafkdk$1ut4h$2@raubtier-asyl.eternal-september.org> <20240825192810.0000672c@yahoo.com> <vafs6u$21ofd$1@raubtier-asyl.eternal-september.org> <20240825220016.00002793@yahoo.com> <86bk1e4y7t.fsf@linuxsc.com> <vajn50$2rqra$2@raubtier-asyl.eternal-september.org> <vajnha$2rtl3$1@dont-email.me> <vajns4$2rvg8$1@raubtier-asyl.eternal-september.org> <vajspc$2so1b$1@dont-email.me> <vajtdo$2ssc8$1@raubtier-asyl.eternal-september.org> <valodj$35rt8$7@dont-email.me> <vamarr$3btll$1@raubtier-asyl.eternal-september.org> <van0h7$3eqvr$1@dont-email.me> <van1sb$3f45o$1@raubtier-asyl.eternal-september.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Wed, 28 Aug 2024 13:47:33 +0200 (CEST) Injection-Info: dont-email.me; posting-host="ff69eccb6a03ed8e39f9d9a339aa428c"; logging-data="3641160"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19WqGiz4wVZW4N6GjC7rHA1mDP+h8DTxws=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:+GFclc59Coh6GJYZYhrbT+yzaj4= Content-Language: en-US In-Reply-To: <van1sb$3f45o$1@raubtier-asyl.eternal-september.org> Bytes: 3877 On 28/08/2024 08:32, Bonita Montero wrote: > Am 28.08.2024 um 13:09 schrieb Thiago Adams: > >> There is often confusion between abstraction and the syntax used to >> achieve abstraction. Since there isn't a specific term for this, I'll >> refer to it as "syntax for abstraction." > > The distinction is that with abstraction you have not much code but > a big effect. Take f.e. a dynamic_cast<> which does a downcast. What > the dynamic_cast<> does is simple, but compared to C it generates a > lot of code. C++ generates a lot of code, including constructors, destructors, and virtual functions. While abstractions can also be achieved in C, they have to be implemented manually. However, the solutions are often more tailored when done this way. >> In C, we have everything we need: "data" and "functions." > > In C you have five to ten times the code and mostly boilerplat-code > to do the same thing. But this is nothing we can't live with, with the befit of disallowing other unwanted C++ features. >> For example, we can create an abstraction for a Matrix. Ultimately, >> the Matrix abstraction is represented by struct and the operations on >> it are functions: >> >> >> struct matrix a = {}; >> struct matrix b = {}; >> ... >> struct matrix c = matrix_mult(&a, &b); > > In C++23 you can have a matrix class and a multidimensional array > -operator. This would result in the same code but much less effort. > If you mean code written by other people, then this is about a big "framework". C does not have that. On the other hand you find any code you need in C searching on the web. (But I think C need more std functions, like utf8 support) --- Many times, C++ abstraction are incomplete. For instance, "smart pointers" should be called fake pointers. C++ std::string does not represent "literals". Them we have .c_str() and we also my have extra unnecessary conversions and allocations.