Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wektor_cpp
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
wektor_cpp
Commits
bf2f2b37
Commit
bf2f2b37
authored
Apr 29, 2026
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wersja robocza mająca pokazać problemy z pamięcią
parent
016a539f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
47 additions
and
3 deletions
+47
-3
program.cpp
program.cpp
+24
-3
wektor.cpp
wektor.cpp
+21
-0
wektor.h
wektor.h
+2
-0
No files found.
program.cpp
View file @
bf2f2b37
...
...
@@ -35,8 +35,6 @@ int main() {
std
::
cout
<<
"size: "
<<
w
.
size
()
<<
'\n'
;
std
::
cout
<<
w
<<
'\n'
;
std
::
cout
<<
"
\n
suma wynosi: "
<<
suma
(
w
)
<<
'\n'
;
// EXN w.set(50, 5050);
try
{
...
...
@@ -46,7 +44,30 @@ int main() {
std
::
cout
<<
"wyjątek "
<<
exn
<<
'\n'
;
}
std
::
cout
<<
"
\n
suma wynosi: "
<<
suma
(
w
)
<<
'\n'
;
std
::
cout
<<
"
\n
suma wynosi: "
<<
suma
(
w
)
<<
"
\n\n
"
;
std
::
cout
<<
"w: "
<<
w
<<
'\n'
;
Wektor
z
=
w
;
// tu działa konstruktor kopiujący
std
::
cout
<<
"z: "
<<
z
<<
'\n'
;
Wektor
v
;
// tu działa konstruktor domyślny
v
=
z
;
// tu działa operator przypisania
std
::
cout
<<
"v: "
<<
v
<<
'\n'
;
std
::
cout
<<
"zmiany, zmiany...
\n
"
;
w
[
1
]
=
1111111
;
z
[
2
]
=
2222222
;
v
[
3
]
=
3333333
;
w
.
push_back
(
1001
);
z
.
push_back
(
2002
);
v
.
push_back
(
3003
);
std
::
cout
<<
"w: "
<<
w
<<
'\n'
;
std
::
cout
<<
"z: "
<<
z
<<
'\n'
;
std
::
cout
<<
"v: "
<<
v
<<
'\n'
;
std
::
cout
<<
"Koniec programu
\n
"
;
return
0
;
...
...
wektor.cpp
View file @
bf2f2b37
...
...
@@ -3,6 +3,12 @@
const
TypIndeksu
startowy_rozmiar_tablicy
=
8
;
// Dla klas, które same zarządzają pamięcią, istotne jest zdefiniowanie
// w spójny sposób takich elementów klasy, jak:
// - konstruktor kopiujący
// - operator przypisania
// - destruktor
Wektor
::
Wektor
()
:
rozmiar_tablicy
{
startowy_rozmiar_tablicy
},
liczba_elementow
{
0
}
...
...
@@ -10,6 +16,21 @@ Wektor::Wektor()
t
=
new
TypWartosci
[
rozmiar_tablicy
];
}
// konstruktor kopiujący
// domyślna implementacja skopiowałaby wskaźnik do tej samej tablicy,
// co powodowałoby mnóstwo problemów:
// - wzajemne nadpisywanie zawartości podczas operowania na dwóch zmiennych
// - double free pod koniec życia obiektów
// Wektor::Wektor(const Wektor &zrodlowy)
// : rozmiar_tablicy{zrodlowy.rozmiar_tablicy},
// liczba_elementow{zrodlowy.liczba_elementow}
// {
// t = new TypWartosci[rozmiar_tablicy];
// for(TypIndeksu i=0; i<liczba_elementow; i++) {
// t[i] = zrodlowy.t[i];
// }
// }
Wektor
::~
Wektor
()
{
std
::
cout
<<
"destruct
\n
"
;
delete
[]
t
;
...
...
wektor.h
View file @
bf2f2b37
...
...
@@ -20,6 +20,8 @@ class Wektor {
public
:
Wektor
();
//Wektor(const Wektor&);
~
Wektor
();
TypIndeksu
size
()
const
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment